从htaccess规则中排除路径

时间:2015-01-13 13:30:52

标签: php apache .htaccess mod-rewrite

我们的.htaccesss文件具有以下规则,这些规则会影响对我们管理页面的访问。

规则设置为允许以下内容:

http://www.example.com/en-gb/section/product/

#Most pages are caught by this so we can use the translated token stored in cms rather than having to fix here
RewriteRule ^([a-zA-Z]{2})-([a-zA-Z]{2})/([a-zA-Z0-9\-_]+)(/?)$                                         index.php?html/pages/$3                     [L,NC]

#Product pages
RewriteRule ^([a-zA-Z]{2})-([a-zA-Z]{2})/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)(/?)$                       index.php?html/pages/$4                     [L,NC]

#Product subscription pages
RewriteRule ^([a-zA-Z]{2})-([a-zA-Z]{2})/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)/([a-zA-Z0-9\-_]+)(/?)$     index.php?html/pages/$5                     [L,NC]

不幸的是,这会影响管理页面,例如发起404的http://www.example.com/en-gb/admin

基本上,如果路径包含/ admin?

,有没有办法忽略上述规则

我在RewriteRule之前尝试过RewriteCond,但它似乎没有用。

干杯!

1 个答案:

答案 0 :(得分:0)

谢谢@JustinIurman但不幸的是我无法得到你的答案。

这是一个比我最终想象的更简单的解决方案。

我刚刚将规则更改为以下内容:

+RewriteRule ^([a-zA-Z]{2})-([a-zA-Z]{2})/(?!admin)([a-zA-Z0-9\-_]+)(/?)$

感谢您的帮助。