使用REQUEST_URI将RewriteCondexception重新规则与新的域不起作用

以下exception不起作用。 http://www.domain.com有和没有/testingredirect到http://www.example.de/foo/ ,但例外不应该!

RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC] RewriteCond %{REQUEST_URI} !^/test$ RewriteRule ^(.*)$ http://www.example.de/foo/ [R=302,L] 

什么原因?

它与规则相冲突

 RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] 

在.htaccess文件的末尾。

如果我像index.php添加一个exception

 RewriteCond %{HTTP_HOST} ^www.domain.example$ [NC] RewriteCond %{REQUEST_URI} !^/test$ RewriteCond %{REQUEST_URI} !index.php RewriteRule ^(.*)$ http://www.example.org/foo/ [R=302,L] 

那么它的工作。

我发现这是解决我的问题,但发现我需要添加另一个“根”请求条件驱动重写规则,使我的最终解决scheme的工作。 根据所需的逻辑,可能如下所示:

 RewriteCond %{HTTP_HOST} ^www.domain.example$ [NC] RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^(.*)$ /some-uri [L,R=302] RewriteCond %{HTTP_HOST} ^www.domain.example$ [NC] RewriteCond %{REQUEST_URI} !^/some-uri$ RewriteRule ^(.*)$ /some-uri [L,R=302] RewriteCond %{REQUEST_URI} !^/index.php$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ /some-uri [L,R=302]