on3*_*3al 34 ssl https redirect nginx
我正在使用SSL设置nginx服务器.
ssl的域名是www.mydomain.com
我想重定向所有请求:
http://mydomain.com,http://www.mydomain.com和https://mydomain.com来
我目前有以下服务器块设置:
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;
}
Run Code Online (Sandbox Code Playgroud)
这目前不起作用,但我不明白为什么不.我可以得到http - > https工作或没有www到 - > www工作的组合,但如上所述混合它们不起作用.
Moh*_*ady 17
如果您的ssl证书不支持非www域,则ssl重定向将不起作用.配置正确但可以简化为1个重定向服务器
另外不要忘记重新加载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;
}
Run Code Online (Sandbox Code Playgroud)
Sun*_*mar 11
我迟到了,但你可以这样做
server{
listen 443 ssl;
server_name www.mydomain.com;
root /www/mydomain.com/;
ssl on;
ssl_certificate /ssl/domain.crt;
ssl_certificate /ssl/domain.key;
.
.
.
}
server{
listen 80;
server_name www.mydomain.com mydomain.com;
return 301 https://$server_name$request_uri;
}
server{
listen 443;
server_name mydomain.com;
return 301 https://www.$server_name$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
或者可以替换return 301 https://www.$server_name$request_uri;使用 rewrite ^ http://www.$server_name$request_uri? permanent;,既会工作.
你还需要在谷歌网站管理员中设置这个以获得更好的搜索引擎优化.