CentOs Nginx 将 https://www 重定向到 https://



我在 centos 中使用 Nginx。我面临重定向问题。

我想将所有请求重定向到https://some-domain.com/url

我能够重定向

http://www.some-domain.com to https://some-domain.com
www.some-domain.com to https://some-domain.com
http://some-domain.com to https://some-domain.com

但我无法重定向https://www.some-domain.com

会议文件:

server
{
listen 443 ssl;
server_name some-domain.com www.some-domain.com;
ssl_certificate     /etc/nginx/ssl/some-domain.com.chained.crt;
ssl_certificate_key /etc/nginx/ssl/some-domain.com.key;
if ($host = https://www.some-domin.com) {
return 301 https://some-domin.com$request_uri;
}
}

最好将两个服务器括号分开,以避免使用"if"。您的问题是您在主机中添加了"https://",而它只是您需要比较 www.some-domain.com 的内容。

这个例子更简单:

#Server bracket for https connections that come with host www.some-domain.com
server
{
listen 443 ssl;
server_name  www.some-domain.com;
ssl_certificate     /etc/nginx/ssl/some-domain.com.chained.crt;
ssl_certificate_key /etc/nginx/ssl/some-domain.com.key;
#redirects to https://non-www
location / {
return 301 https://some-domin.com$request_uri;
}
}

# and then you can set a server bracket for non-www https connections.
# nginx will sort the connections depending on host for itself
server
{
listen 443 ssl;
server_name some-domain.com;
ssl_certificate     /etc/nginx/ssl/some-domain.com.chained.crt;
ssl_certificate_key /etc/nginx/ssl/some-domain.com.key;
#Here it arrives 443 and without www, do what you wanted here
}

最新更新