RewriteRule定义不起作用

时间:2012-02-01 17:28:09

标签: apache .htaccess mod-rewrite

如果我有以下RewriteRule而没有任何其他RewriteRule定义

RewriteRule ^de/(var)/(.+) /$1/$2 [NC,L]

然后一切正常

但是当我在.htaccess文件中有以下RewriteRule时

RewriteRule .* index.php [L]

然后第一个RewriteRule不起作用。

2 个答案:

答案 0 :(得分:0)

我相信这是你应该遵守这两条规则的方式:

RewriteRule ^de/(var)/(.+)$ /$1/$2 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/de/var/ [NC]
RewriteRule ^ index.php [L]

答案 1 :(得分:0)

以下解决方案应该可以解决您的问题。

如果您提供有关规则意图的详细信息,则可以提供更好的解决方案。

RewriteEngine On
RewriteBase /

RewriteRule ^de/(var)/(.+) /$1/$2 [NC,L]

#prevent internal redirects
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule .* index.php [L]