【深度】NGINX Rewrite 详解

一、rewrite是什么

1 a location is searched based on a request URI;
译:location是用来匹配uri的,当匹配时,执行该location里的指令,否则继续向下匹配剩余location,直至结束

2 the directives of this module specified inside the found location are executed sequentially;
译:location里的指令顺序执行

3 the loop is repeated if a request URI was rewritten, but not more than 10 times.
译:uri被重写次数不超过10次

rewrite regex replacement[flag];

rewrite是实现url重写的指令,根据正则regex匹配,并跳转到replacement,flag用来控制跳转规则,取值包括break, last, redirect, permanent四种。

二、正则及flag标记说明
符号说明
^指定匹配字符串开始
$指定匹配字符串结束
.任意非空字符
+量词,匹配1次或多次
*匹配0次或多次
?量词,匹配0次或1次
()作为一个整体匹配
[]匹配括号中的任意一项
标记说明
break本条规则匹配完成后终止,不在匹配任何规则
last本条规则匹配完成后,从server开始发起新一轮的匹配,最多10次
redirect返回302临时重定向
permanent返回301永久重定向
三、常用rewrite匹配规则说明

1 301 跳转

rewrite ^/(.*) http://sohu.com/$1 permanent;

2 302 跳转

rewrite ^/(.*) http://sohu.com/$1 redirect;

3 url重写

location / {
	rewrite "/category\?id=(\d+)$" /category/show/$1 break;
}

参考文档
1 nginx_http_rewrite_module

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值