将www重定向到非www

问题描述 投票:0回答:1

我正在尝试将所有流量从HTTP站点重定向到HTTPS站点以及所有www流量到非www站点。我的设置包括HTTP站点的nginx.conf文件,我已经将301重定向规则添加到:

server {
    listen       80;
    listen       [::]:80;
    server_name
        sub.domain.com
        www.sub.domain.com
       ;

    return 301 https://sub.domain.com$request_uri;
    ...
}

我还有一个https nginx.ssl.conf文件,它看起来像:

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name  sub.domain.com www.sub.domain.com;

    ssl on;
    ...
}

通过此设置,我可以将所有HTTP流量重定向到HTTPS,但如果我尝试在我的nginx.ssl.conf文件中添加重定向,则会收到“太多重定向”错误。

有关如何将所有内容重定向到我的HTTP,非www站点的任何建议?

ssl redirect nginx https http-status-code-301
1个回答
1
投票

您需要将https块拆分为两个域

server {
    listen       80;
    listen       [::]:80;
    server_name
        sub.domain.com
        www.sub.domain.com
       ;

    return 301 https://sub.domain.com$request_uri;
    ...
}


server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name  www.sub.domain.com;
    return 301 https://sub.domain.com$request_uri;
    ssl on;
    ...
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name  sub.domain.com;

    ssl on;
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.