301 适合永久重定向 301 比较常用的场景是使用域名跳转。
比如, 我们访问 http: //www.baidu.com 会跳转到 https://www.baidu.com,发送请求之后,就会返回301状态码,然后返回一个location,提示新的地址,浏览器就会拿着这个新的地址去访问。
注意: 301 请求是可以缓存的, 即通过看status code, 可以发现后面写着from cache。
或者你把你的网页的名称从php修改为了html, 这个过程中, 也会发生永久重定向。
302 用来做临时跳转 比如未登陆的用户访问用户中心重定向到登录页面。
访问404页面会重新定向到首页。
# # niginx 301 / 302 配置
rewrite后面接上permenent就代表301跳
//把来自www.chinasgp.cn的请求301跳到 www.www.chinasgp.cn
if ($host != 'www.chinasgp.cn') {
rewrite ^ /(.*)$ http:/ / www.www.chinasgp.cn / $1 permanent;
}
接上redirect就代表302跳
//把来自www.chinasgp.cn的请求302跳到 www.www.chinasgp.cn
if ($host != 'www.chinasgp.cn') {
rewrite ^ /(.*)$ http:/ / www.www.chinasgp.cn / $1 redirect;
}
301 重定向和302重定向的区别
302 重定向只是暂时的重定向, 搜索引擎会抓取新的内容而保留旧的地址, 因为服务器返回302, 所以, 搜索搜索引擎认为新的网址是暂时的。
而301重定向是永久的重定向, 搜索引擎在抓取新的内容的同时也将旧的网址替换为了重定向之后的网址。