Apache 如何修复.htaccess重写规则冲突?

Apache 如何修复.htaccess重写规则冲突?,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有冲突重写规则。htaccess RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . /index.php [L] RewriteRule ^unsubscribe.php$/template/site.org/newsletter/unsubscribe.php RewriteRule ^(unsubscribe

我有冲突重写规则。htaccess

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
RewriteRule ^unsubscribe.php$/template/site.org/newsletter/unsubscribe.php
RewriteRule ^(unsubscribe)/?$ /$1.php [L,NC]
这个

RewriteRule . /index.php [L]
与冲突

RewriteRule ^unsubscribe.php$/template/site.org/newsletter/unsubscribe.php
RewriteRule ^(unsubscribe)/?$ /$1.php [L,NC]

请帮我修复。

您的
取消订阅
规则在模式和目标之间需要一个空格,但更重要的是,您需要将这些规则放在catch all
index.php
规则之前。您还可以将最后两条规则合并为一条:

RewriteEngine on
RewriteBase /

RewriteRule ^unsubscribe(?:\.php)?$ /template/site.org/newsletter/unsubscribe.php [L,NC]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]

非常感谢你@anubhava。它工作得很好。