Nginx重定向
可以使用Nginx来设置重定向,Nginx有两种设置重定向方式
- return形式
- rewrite形式
return形式
表示结束规则的执行,并返回状态码给客户端
1 | #以下三种都可以 |
示例:
1 | #301表示永久重定向 302表示临时重定向 |
rewrite形式
将某个URL重写成特定URL
示例:
1 | # rewrite regex replacement flag |
最后一项为flag,有以下几种选择
- last 表示完成rewrite,停止处理后续rewrite指令集,然后对当前重写的新url在rewrite指令集上继续进行规则匹配,浏览器地址栏不变
- break 本条规则匹配完成,终止匹配,不再匹配后面的规则,停止处理后续rewrite指令集,并不再匹配后面的规则,但是当前location内剩余非rewrite语句和location外的非rewrite语句可以执行,浏览器地址栏不变
- redirect 返回302临时重定向,地址栏会显示跳转后的地址
- parmanent 返回301永久重定向,地址栏会显示跳转后的地址
last和break两者很像,但是使用alias指令时必须使用last,使用proxy_pass时必须使用break,last在本条rewrite执行之后,会对其所在的server{}重新发起请求,而break在本条rewrite执行之后,则会终止匹配
1 | # 对于这种情况一定要用break,如果使用last,会造成死循环 |