Nginx设置301重定向到www和强制跳转https
本站示例
例如本站使用www.colortimbre.com
作为主域名,并使用https
协议.
呈现在地址栏的主页地址为https://www.colortimbre.com
呈现在地址栏的内页地址为https://www.colortimbre.com/about.html
然而用户习惯,在输入网址时不会主动去填写
https
,甚至不会去输入www,colortimbre.com
按照以下配置,我们可以实现以下跳转:
地址栏输入
colortimbre.com
跳转到https://www.colortimbre.com
地址栏输入www.colortimbre.com
跳转到https://www.colortimbre.com
地址栏输入
colortimbre.com/about.html
跳转到https://www.colortimbre.com/about.html
地址栏输入
www.colortimbre.com/about.html
跳转到https://www.colortimbre.com/about.html
配置流程
需要把域名的
www
和@
两个主机分别设置A记录
到你的服务器IP
全站域名跳转到www二级域名
配置80端口http协议重定向
- 编辑站点
nginx.conf
文件 - 第一个标注为
http
默认80
端口,同时添加colortimbre.com
和www.colortimbre.com
两个域名. - 第二个标注为添加
301重定向
代码
如果站点没有配置SSL证书,或者不使用
https
协议,把代码中的https
替换为http
即可.
return 301 https://www.colortimbre.com$request_uri;
代码解释: 此代码表示手动不输入
https
只输入上面2个域名colortimbre.com
和wwww.colortimbre.com
时,浏览器默认使用80端口并自动添加http
为http://colortimbre.com
或http://www.colortimbre.com
都将因此段代码而强制跳转到https://www.colortimbre.com
其中request_uri
代表包含域名内页也将跳转到https
的内页
配置443端口https协议重定向
如果站点没有配置SSL证书,或者不使用https协议,可以忽略以下步骤无需添加代码.
- 继续编辑下面的
https
- 第一个标注为
https
默认443
端口,同时添加colortimbre.com
和www.colortimbre.com
两个域名. - 第二个标注为添加
301重定向
代码
if ($host = 'colortimbre.com') {
return 301 https://www.colortimbre.com$request_uri;
}
代码解释:
此代码表示如果输入的域名为https://colortimbre.com
将重定向到https://www.colortimbre.com
其中request_uri
代表包含域名内页也将跳转到https
的内页
-
保存后上传覆盖你原有的conf文件
-
输入nginx -t检查错误
-
重启Nginx后生效
全站域名跳转到不含www一级域名
如果希望不使用www,直接使用
colortimbre.com
一级域名为主域名,也可以稍作修改来实现.依然需要把域名的www和@两个主机都设置A记录到你的服务器IP.
配置80端口http协议重定向
- 编辑站点
nginx.conf
文件 - 第一个标注为
http
默认80
端口,同时添加colortimbre.com
和www.colortimbre.com
两个域名. - 第二个标注为添加
301重定向
代码
如果站点没有配置SSL证书,或者不使用https协议,把代码中的https替换为http即可.
return 301 https://colortimbre.com$request_uri;
代码解释:
此代码表示手动不输入https
只输入上面2个域名colortimbre.com
和www.colortimbre.com
时,浏览器默认使用80端口
并自动添加http
为http://colortimbre.com
或http://www.colortimbre.com
都将因此段代码而强制跳转到https://colortimbre.com
其中request_uri
代表包含域名内页也将跳转到https
的内页
配置443端口https协议重定向
如果站点没有配置SSL证书,或者不使用https协议,可以忽略以下步骤无需添加代码.
- 继续编辑下面的
https
- 第一个标注为
https
默认443
端口,同时添加colortimbre.com
和www.colortimbre.com
两个域名. - 第二个标注为添加
301重定向
代码
if ($host = 'www.ioiox.com') {
return 301 https://colortimbre.com$request_uri;
}
代码解释:
此代码表示如果输入的域名为https://www.colortimbre.com
将重定向到https://colortimbre.com
其中request_uri
代表包含域名内页也将跳转到https
的内页
-
保存后上传覆盖你原有的conf文件
-
输入nginx -t检查错误
-
重启Nginx后生效