重定向规则未执行

时间:2012-10-02 07:13:10

标签: regex .htaccess redirect rule

我使用rubular.com测试了以下重定向规则

^tags\/([a-zA-Z0-9_-]+)\.html

并使用示例/tags/a-led.html返回/tags/a-led。直到这一点,一切看起来都不错,但是当我在我的htaccess中应用规则时,

 RewriteRule ^tags\/([a-zA-Z0-9_-]+)\.html$  /tags/$1 [R,L]

以及其他一些规则在

之后
RewriteRule ^(.*)/(d*)-(.*)\.html$  /showthread.php?$1 [R,L]
RewriteRule ^(d*)-(.*)\.html$ /threads/$2 [R,L]

没有被执行,不幸的是我没有胶水可能是什么原因。

2 个答案:

答案 0 :(得分:0)

  1. 规则看起来很好,当我将它放在一个默认安装apache的空白htaccess文件中时,它可以正常工作。
  2. 确保已加载mod_rewrite,并且您已启用重写引擎(RewriteEngine On)。
  3. 如果您有其他规则,请确保您的重定向规则在执行内部重写或路由的规则之前。
  4. 确保您的htaccess文件甚至可以读取。您需要在服务器/ vhost配置中为AllowOverride设置正确的设置。设置AllowOverride All将确保应用htaccess文件中的所有内容。

答案 1 :(得分:0)

RewriteEngine On 
RewriteRule ^tags\/([a-zA-Z0-9_-]+)\.html$  /tags/$1 [R,L]

还要检查是否在 [R,L] 之前设置了其他规则。如果匹配的话,L告诉apache不要再处理任何规则。