我需要更改当前的重写规则以适应管理员文件夹 . 这是我目前的mod-rewrite代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+?)/([a-z]+?)/(.*)$ index.php?model=$1&view=$2¶ms=$3 [L,NS]
我有这个文件夹结构:
ROOT: http://www.domain.com/
ADMIN: http://www.domain.com/admin/
如果.htaccess文件位于“admin”文件夹中,则它可以正常工作 . 我明白了:
URL: http://domain.com/admin/faq/edit/13/asc
(NOTE: http://domain.com/admin/.htaccess)
Array
(
[model] => faq
[view] => edit
[params] => 13/asc
)
但是,当它在根文件夹中时,我得到:
URL: http://domain.com/admin/faq/edit/13/asc
(NOTE: http://domain.com/.htaccess)
Array
(
[model] => admin
[view] => faq
[params] => edit/13/asc
)
我希望mod-rewrite能够识别admin文件夹并且是一个实际的目录并使用单独的重写规则 .
提前致谢 .
2 回答
将其添加到您的根目录.htaccess:
在
RewriteEngine On
之后添加此权限 . 这里的关键点是[L]
,它告诉mod-rewrite在这个匹配的情况下停止执行其余的规则 . 如果您需要管理文件夹的多个规则,只需添加更多RewriteRule语句,但请记住只将[L]
添加到最后一个 .应该这样做 .
加
在另一个条件之前 . 这应该够了吧 .
另一种方法是直接在规则中包含条件