NGINX 将 http 重定向到 https,将非 www 重定向到 ww [英] NGINX Redirect http to https and non-www to ww
问题描述
我正在使用 SSL 设置 nginx 服务器.
I'm setting up an nginx server with an SSL.
带有 ssl 的域是 www.mydomain.com
The domain with the ssl is www.mydomain.com
我想重定向来自:
http://mydomain.com、http://www.mydomain.com, &https://mydomain.com 到
我目前设置了以下服务器块:
I have the following server blocks setup currently:
server{
listen 443 ssl;
root /www/mydomain.com/;
ssl_certificate /ssl/domain.crt;
ssl_certificate /ssl/domain.key;
.
.
.
}
server{
listen 80;
server_name mydomain.com;
return 301 https://www.mydomain.com$request_uri;
}
server{
listen 80;
server_name www.mydomain.com;
return 301 https://www.mydomain.com$request_uri;
}
server{
listen ssl 443;
server_name mydomain.com;
return 301 https://www.mydomain.com$request_uri;
}
这目前行不通,但我不明白为什么不行.我可以得到 http -> https 工作或 no-www 到 -> www 工作的组合,但如上所述混合它们不起作用.
This currently does not work, but I don't understand why not. I can get a combination of either http -> https working or no-www to -> www working, but mixing them as above does not work.
推荐答案
如果您的 ssl 证书不支持非 www 域,则 ssl 重定向将不起作用.配置是正确的,但可以减少到只有 1 个重定向服务器
The ssl redirect won't work if your ssl certificate doesn't support the non-www domain. The config is correct but can be reduced to just 1 redirect server
另外别忘了重新加载nginx sudo service nginx reload
Also don't forget to reload nginx sudo service nginx reload
server {
listen 80;
listen 443 ssl;
server_name example.com;
# add ssl settings
return 301 https://www.example.com$request_uri;
}
这篇关于NGINX 将 http 重定向到 https,将非 www 重定向到 ww的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!