以下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]