首先客户端浏览器的URL都会改变;
302重定向是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址。因为服务器返回302,所以搜索引擎会认为新的网址是暂时的;
301重定向是永久的重定向,搜索引擎会抓取新的内容的同时将旧的地址替换为重定向后的网址;
return指令在301跳转上比rewrite指令性能上更加有优势。虽然在访问量不大的情况下几种写法的性能表现上区别并不大,不过在海量访问中一个小小的优化也能在提升业务系统性能上起到不小的作用
301跳转的两种写法:
rewrite ^(.*) https://www.epermarket.com$1 permanent;
rewrite ^(.*)$ $host$1 permanent;
rewrite ^ https://www.gl.sh.cn$request_uri? permanent;
return 301 $scheme://b.com$request_uri;
return 301 https://www.linuxbaodian.com$request_uri;
302跳转的两种写法:
rewrite ^(.*) https://www.epermarket.com$1 redirect;
rewrite ^(.*)$ $host$1 redirect;
rewrite ^ https://www.gl.sh.cn$request_uri? redirect;
return 302 $scheme://b.com$request_uri;
return 302 https://www.linuxbaodian.com$request_uri;
last 处理完请求后,跳出location,再重新执行。
break 处理完成之后,不会跳出location,不再重新执行。而只能将信息传递给后面的fsatcgi_pass或者proxy_pass等指令。
permanent 永久性重定向,请求日志中的状态码为301
redirect 临时重定向,请求日志中的状态码为302
尽可能使用301跳转。