nginx:如何在使用密码验证时重定向到另一个域?

nginx:如何在使用密码验证时重定向到另一个域?

我正在尝试使用 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/;
}

相关内容