nginx下rewrite规则中参数超过10 $10 解决方案

最近在配置nginx时发生超过9个参数之后取不到值的情况。


参考如下:
http://jimingsong.iteye.com/blog/1770737
http://www.pingshili.com/blog-2-17.html

最后解决,选取重新命名的方式。

这是nginx的rewrite的一个bug,只能获取到$9,再往外全部不能获取到!

生产需求:

rewrite  "^/([\w]{0,})-([0-9]{4})-([0-9]{2})-([0-9]{2})-([0-9]{2})-([0-9]{0,2})([A-Za-z0-9]{2,34})-([\w]{0,})-([0-9]{0,})\.?(gif|jpg|jpeg|png)$"   /$1-$2-$3-$4-$5-$6$7-$8-$9.$10 last;


死活获取不到$10的值。

死活google之! gogole.com.hk不给力搜索不到,google之!

最后在nginx的官方论坛找到别人碰到的同样问题及牛人给出的解决方法,膜拜下!
截图如下:

解决方法:
Nginx的不支持$ 10和$ 11,但你可以使用命名捕获
我们用 $n0 代替 $10 来实现功能
写法如下:

rewrite  "^/([\w]{0,})-([0-9]{4})-([0-9]{2})-([0-9]{2})-([0-9]{2})-([0-9]{0,2})([A-Za-z0-9]{2,34})-([\w]{0,})-([0-9]{0,})\.?(?<n0>gif|jpg|jpeg|png)$"  /$1-$2-$3-$4-$5-$6$7-$8-$9.$n0 last;



使用方法:
在你的$10正则括号内加入?<n0>
如:
\.?(gif|jpg|jpeg|png)$

改为
\.?(?<n0>gif|jpg|jpeg|png)$

同理:$11可以换乘$n1,以此类推!
继续在nginx的海洋中畅游!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值