在NGINX重写中使用正则表达式匹配错误的URL时遇到问题

时间:2015-01-10 01:42:04

标签: nginx rewrite

嗨,我的网址看起来像这样

http://dansawesomesite.com/123/articlename

我在nginx中有以下重写规则

location ~* /(\d+)/([\+\w-\ ]+)/?$ {
  try_files $uri /wpcontentredir.php?slug=$1;
}

这与上述网址匹配,但是当我有以下网址时会出现问题

http://dansawesomesite.com/posts/630325/like (以及一些类似的)

这些也最终得到匹配,这是正确的基于我的正则表达式,但会搞砸了,因为我不希望这些url解析通过try_files,我只是希望它们按原样传递。

只是想知道是否有人可以帮助我只匹配顶部的第一个网址?

干杯 丹

1 个答案:

答案 0 :(得分:0)

尝试添加" ^"到正则表达式的开头 location〜* ^ /(\ d +)/([+ \ w- \] +)/?$

因此,只有当URI的第一部分包含数字而不是" posts"什么