有条件的htaccess RewriteRule

时间:2013-09-30 11:17:00

标签: regex apache .htaccess mod-rewrite

我正在尝试创建重写规则,以根据条件重定向到网址。

我已经看过类似问题,但我发现自己很困惑。

我的重写规则如下:

RewriteRule ^rates/(\w+)/?$ http://www.url.co.uk/rates/result.php?quotenum=$1 [R,L]

例如,这将重定向URL

之后的任何字符组合
www.url.co.uk/rates/1234

www.url.co.uk/rates/result.php?quotenum=1234

我正在创建一个管理页面,它将位于URL:

www.url.co.uk/rates/admin

如何修改重写规则以防止将URL重定向到

www.url.co.uk/rates/result.php?quotenum=admin

当URL等于

www.url.co.uk/rates/admin

1 个答案:

答案 0 :(得分:1)

这应该有效:

RewriteRule ^rates/((?!admin/?$)\w+)/?$ http://www.url.co.uk/rates/result.php?quotenum=$1 [R,L,NC]

(?!admin/?$)否定前瞻,如果URI为/rates/admin/rates/admin

,则与给定的正则表达式不匹配