![http(s) 非 www 到 www 重定向 nginx](https://linux22.com/image/682123/http(s)%20%E9%9D%9E%20www%20%E5%88%B0%20www%20%E9%87%8D%E5%AE%9A%E5%90%91%20nginx.png)
这是我的配置:
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://www.domain.com$request_uri;
}
#server {
# listen 443 ssl;
# server_name domain.com;
# return 301 https://www.domain.com$request_uri;
#}
server {
listen 443 ssl;
ssl on;
ssl_certificate ...
{ ssl stuff }
...
server_name www.domain.com;
...
使用此解决方案(注释第二个服务器块),我能够成功重定向http://domain.com
和http://www.domain.com
到,https://www.domain.com
并且两者都https://domain.com
https://www.domain.com
正常工作。当我取消注释第二个服务器块以启用从https://domain.com
到的重定向时,问题就开始了https://www.domain.com
。然后它就坏了。
Curl -v -I 输出:
$ curl -v -I https://www.domain.com
[15:08:42]
* Rebuilt URL to: https://www.domain.com/
* Trying 8.8.8.8...
* Connected to www.domain.com (8.8.8.8) port 443 (#0)
* Server aborted the SSL handshake
* Closing connection 0
答案1
看起来你没有https://domain.com
在第二个块中包含 SSL 证书等,因此它无法在 443 上运行