1

我在 htaccess 文件中设置了一小组重写规则,我希望每个 url 都转到 index.php 文件,但我想重定向到 admin.php 的 /admin 除外。不幸的是,对 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)。删除或取消注释管理员重写使其工作。

4

1 回答 1

1

需要对 index.php 重写规则应用条件,否则会导致重定向循环。ARewriteCond仅应用于紧随其后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>
于 2013-03-03T23:59:46.483 回答