我正在尝试使用 Nginx 将 domain.com 重定向到 domain2.com。并且仅应使用正确的密码重定向用户。
我实现了重定向和密码验证。但是将这两者结合起来不起作用。
这是我的 /etc/nginx/nginx.conf:
server {
listen 80;
server_name domain.com;
location /thisOne {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
return 301 http://domain2.com:8080/thisOne/;
}
}
有人能帮帮我吗?我做错了什么?
答案1
问题在于,return
语句在语句之前被求值auth
。您可以将return
语句移到另一个块中,以强制执行您正在寻找的求值顺序。
例如:
location /thisOne {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files _nonexistent_ @thisOne;
}
location @thisOne {
return 301 http://domain2.com:8080/thisOne/;
}