所有 nginx URL 的 HTTP 301 已移至单个 HTTPS

所有 nginx URL 的 HTTP 301 已移至单个 HTTPS

下面是我与 Nginx 一起使用的配置文件,用于将所有 WWW 和非 WWW 重定向到 https:/domain.com URL

server {
    listen 80 443;
    server_name domain.com www.domain.com;
    ssl_certificate /usr/share/ca-certificate/pvt/ssl-unified.crt;
    ssl_certificate_key /usr/share/ca-certificate/pvt/ssl.key;
    return 301 https://domain.com$request_uri;
}
server {
    server_name domain.com;
    ssl_certificate /usr/share/ca-certificate/pvt/ssl-unified.crt;
    ssl_certificate_key /usr/share/ca-certificate/pvt/ssl.key;
    listen *:443 ssl;
    index index.php index.html index.htm;
    root /usr/share/nginx/www;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/www;
    }
}

在位于的文件夹中/usr/share/nginxwwwlah。当我在浏览器中加载时www.domain.com,它指向lah.domain.com

当我加载时domain.com它会变成https://domain.com并给我一个

网页不可用 - 错误代码:ERR_CONNECTION_REFUSED

我在 Nginx 配置文件中输入了什么错误?

答案1

好的,我找到了问题所在,首先,我从顶部块中删除了443和:ssl_certificate*

server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
}

然后我就把底部的块留在原处。

我发现在子域名/etc/nginx/sites-enabled/的第二个配置文件中lah,有一个不存在的符号链接,并且正在default使用/etc/nginx/sites-available/defaultlah.domain.com

因此,情况是这样的:

[http|https]://*.domain.com -> https://lah.domain.com

这就是我在测试时使用这个原始配置文件所做的事情。

其次,我修复了符号链接并将下面的配置文件default放到所需的位置,并删除了所有我不需要的内容:

# sudo ls /etc/nginx/sites-enabled
-rw-r--r--  1 root root 1320 Jan 30 13:25 default -> /etc/nginx/sites-available/default

我将文件按原样放在该目录下default

server {
    listen 80 443;
    server_name domain.com www.domain.com;
    ssl_certificate /usr/share/ca-certificate/pvt/ssl-unified.crt;
    ssl_certificate_key /usr/share/ca-certificate/pvt/ssl.key;
    return 301 https://domain.com$request_uri;
}
server {
    server_name domain.com;
    ssl_certificate /usr/share/ca-certificate/pvt/ssl-unified.crt;
    ssl_certificate_key /usr/share/ca-certificate/pvt/ssl.key;
    listen *:443 ssl;
    index index.php index.html index.htm;
    root /usr/share/nginx/www;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/www;
    }
}

现在一切正常。[http|https]为了[www|非www]将重定向至:https://domain.com

相关内容