htaccess的mod_rewrite的 - 重新路由所有的网址索引/除外管理(htaccess

2019-10-17 18:16发布

我设置了一小部分的重写规则在htaccess的文件,其中我想每一个网址去一个index.php文件,除了/管理员,我想重定向到admin.php的。 不是很熟悉的mod_rewrite或正则表达式很遗憾。

<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)。 删除或取消对管理员重写使得它的工作。

Answer 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>


文章来源: htaccess mod_rewrite - reroute all urls to index except /admin