我遇到了一个奇怪的问题,这是我的NGINX conf文件
# For whole site
location / {
auth_basic "Restricted";
auth_basic_user_file /home/john/.htpasswd;
}
# Forum rewrite
location /forum/ {
try_files $uri $uri/ @forum;
}
location @forum {
rewrite ^/forum/(.+)$ /forum/index.php?p=$1 last;
}
该保护对整个网站都很有效,但它不适用于这个用"位置"命令定义的特定论坛文件夹,如果URL是:
https://mysite.com/forum/
https://mysite.com/forum/discussion/9/help-support
并且能够在不输入任何密码的情况下直接访问它。但奇怪的是,它在没有尾部斜杠/类似:的情况下工作
https://mysite.com/forum
提示用户名和密码。将auth_basic保护命令重复到论坛位置,如:
location /forum/ {
auth_basic "Restricted";
auth_basic_user_file /home/john/.htpasswd;
try_files $uri $uri/ @forum;
}
也无济于事。有线索吗?非常感谢。
由于您希望整个站点的auth_basic处于活动状态,因此您可以将其包含在服务器块或http(s)块中
auth_basic "Restricted";
auth_basic_user_file /home/john/.htpasswd;
# Forum rewrite
location /forum/ {
try_files $uri $uri/ @forum;
}
location @forum {
rewrite ^/forum/(.+)$ /forum/index.php?p=$1 last;
}