Nginx设置域名301重定向教程
blog.jianshan.org 301跳转到www.blog.jianshan.org示例配置如下:
省略www.blog.jianshan.org虚拟主机server配置 server { listen 80; server_name blog.jianshan.org; return 301 http://www.blog.jianshan.org$request_uri; }
如果是想让http强制跳转到https,把里面的http换成https就行。
http站点301跳转到https站点示例配置如下:
server { listen 443 ssl; server_name www.blog.jianshan.org; 省略其他配置 } server { listen 80; server_name blog.jianshan.org; return 301 https://www.blog.jianshan.org$request_uri; }
按上面例子修改完成后保存,执行:/etc/init.d/nginx restart 重启nginx,使其生效。
如果是想让https://blog.jianshan.org强制跳转到https://www.blog.jianshan.org
可以在https的虚拟主机配置文件中root行或server_name行下面添加上
if ($host = 'blog.jianshan.org') { return 301 https://www.blog.jianshan.org$request_uri; }
如果要设置对应域名的http跳到对应https站点上
如:http://blog.jianshan.org 跳到 https://blog.jianshan.org,http://www.blog.jianshan.org 跳到 https://www.blog.jianshan.org 上。
在对应域名的http虚拟主机配置文件中添加:return 301 https://$host$request_uri;
如果使用Let'sEncrypt免费SSL证书
如果使用的Let's Encrypt的免费证书,而且你要想设置301,编辑要设置301域名的nginx虚拟主机配置文件,找到包含有listen 80;的server段,在
location ~ /.well-known { allow all; }
这几行下面添加,如下配置:
location / { return 301 https://$host$request_uri; }
保存,如果不设置会导致证书无法正常续期。
注意:以上所有更改nginx的配置都需要重启ngin生效。