单独的管理员和根重写规则(mod_rewrite)

时间:2012-08-02 06:46:11

标签: apache mod-rewrite

这是我目前的htaccess,我使用的是mod_rewrite

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !^/?admin/.+$ index.php [L]
RewriteRule ^admin/(.*)$ admin/index.php [L]

我需要将管理员请求重写为admin/index.php和其他/index.php请求 例如:
localhost/example/index.php
localhost/foo/bar/index.php
localhost/admin/login/admin/index.php
localhost/admin/pages/admin/index.php

以上规则工作正常但它也适用于CSS样式或javascripts。这意味着admin/js/jquery.js也将重写为admin/index.php(文件路径存在)。我错过了什么?

1 个答案:

答案 0 :(得分:2)

您需要复制2个条件,这些条件仅适用于下一个RewriteRule

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !^/?admin/.+$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/(.*)$ admin/index.php [L]