我在htaccess文件中设置了一小组重写规则,我希望每个url都转到index.php文件,除了/ admin我要重定向到admin.php。不幸的是,不熟悉mod_rewrite或regexp。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin$ admin.php [L]
RewriteRule . /index.php [L]
</IfModule>
这给了我一个内部服务器错误(不是说500)。删除或取消注释管理员重写可以使其正常工作。
答案 0 :(得分:1)
条件需要应用于index.php重写规则,否则会导致重定向循环。 RewriteCond
仅应用于紧随其后的RewriteRule
,因此将所有内容路由到索引的规则没有条件。尝试重新排列行:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^admin$ admin.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>