使用.conf设置在Nginx中将HTTP重写为HTTPS

时间:2016-01-01 16:41:58

标签: ssl nginx https rewrite

我在这里缺少什么?

pip

它给了我重定向循环错误。

1 个答案:

答案 0 :(得分:1)

我会根据现有的信息对此进行拍摄。将所有请求从http重定向到https时,端口80的单独服务器块是个好主意。同样,当将所有请求从一个主机名重定向到另一个主机名时,每个主机名的单独服务器块也是一个好主意。

server {
    listen 80;
    server_name domain.com www.domain.com;

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

server {
    listen 443;
    server_name www.domain.com;

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

server {
    listen 443;
    server_name domain.com;

    ...
}

因此,我们正在端口80上侦听主机名并重定向到https://domain.com,并在{44}上侦听端口443,并将这些请求重定向到https://www.domain.com。这样可以使您的Nginx配置清晰易读。

重要提示:请注意,如果您的SSL证书不包含https://domain.com,那么对www.domain.com的请求将导致证书错误和相当糟糕的浏览器警告。在这种情况下,您应该将证书替换为包含两个主机名的证书。