1

我需要更改当前的重写规则以适应管理文件夹。这是我当前的 mod 重写代码:

重写引擎开启
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([az]+?)/([az]+?)/(.*)$ index.php?model=$1&view=$2¶ms=$3 [L,NS]

我有这个文件夹结构:

根目录:http://www.domain.com/
管理员:http://www.domain.com/admin/

如果 .htaccess 文件位于“admin”文件夹中,则它可以正常工作。我得到:

网址:http://domain.com/admin/faq/edit/13/asc
(注:http://domain.com/admin/.htaccess)
大批
(
    [型号] => 常见问题
    [查看] => 编辑
    [参数] => 13/asc
)

但是,当它在根文件夹中时,我得到:

网址:http://domain.com/admin/faq/edit/13/asc
(注:http://domain.com/.htaccess)
大批
(
    [模型] => 管理员
    [查看] => 常见问题
    [参数] => 编辑/13/asc
)

我希望 mod-rewrite 能够识别该管理文件夹并且是一个实际目录并使用单独的重写规则。

提前致谢。

4

2 回答 2

2

添加

RewriteCond ^admin/
RewriteRule (your Rule) [L]

在其他条件之前。这应该够了吧。

另一种方法是直接通过将条件包含在规则中

RewriteRule ^admin/(rest_of_regex)$ (regex_stuff) [L]
于 2009-06-18T10:27:38.390 回答
0

将此添加到您的根 .htaccess:

RewriteCond ^admin/
RewriteRule (whatever rule you need for the admin folder) [L]

RewriteEngine On. 这里的关键点是[L]告诉 mod-rewrite 如果这条规则匹配则停止执行其余的规则。如果您需要为 admin 文件夹添加多个规则,只需添加更多 RewriteRule 语句,但请记住只添加[L]到最后一个。

那应该这样做。

于 2009-06-18T11:21:20.077 回答