我遇到了一个奇怪的问题,这是我的NGINX配置文件
# 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为:
,则对于使用“location”命令定义的特定论坛文件夹不起作用https://mysite.com/forum/
https://mysite.com/forum/discussion/9/help-support
并且无需输入任何密码即可直接访问它。但奇怪的是,它的工作没有尾随斜杠/类似:
https://mysite.com/forum
提示输入用户名和密码。将auth_basic protection命令重复到论坛位置,如:
location /forum/ {
auth_basic "Restricted";
auth_basic_user_file /home/john/.htpasswd;
try_files $uri $uri/ @forum;
}
也没有帮助。有线索吗?谢谢!
答案 0 :(得分:3)
因为您希望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;
}