# 301 永久重定向到https
server {
server_name xxx.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
# 302 临时重定向
server {
server_name xxx.com;
rewrite ^(.*)$ https://$host$1 redirect;
}
302 一般用于用户登录,站内错误页面重定向
该重定向是 暂时的跳转,搜索引擎会将抓取到的新的内容当作旧网址的内容,而忽略302重定向后的网址。
301 一般用于http跳转https,域名更换的场景
该重定向是 永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的新网址。
关于 301重定向,也可以使用nginx配置的请求头 详见 https://imququ.com/post/web-security-and-response-header.html
其中的第一个配置项,大部分浏览器都支持,需要注意 过期时间,比如你配置了一年,但是3个月后你的ssl证书过期了,你懒得换了,取消了https,这个时候,之前访问过你网站的用户 再次访问你的网站,会被浏览器强制转至https,手动输入http 也不行的。