RewriteRule - 文件夹异常(带破折号)

时间:2010-08-12 15:17:00

标签: apache .htaccess

我在我的网站root中安装了drupal,下面有一个名为xi-admin的目录,该目录里面有一个.htaccess来做密码保护。问题是,它是否正在将http://www.example.com/xi-admin/重写为index.php ????

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^(xi-admin|xi-admin/.*)$
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

2 个答案:

答案 0 :(得分:0)

尝试更改

RewriteCond %{REQUEST_URI} !^(xi-admin|xi-admin/.*)$

RewriteCond %{REQUEST_URI} !^/xi-admin

答案 1 :(得分:0)

在您的配置中,您在一个规则中引用foo,而另一个规则引用/bar,其中一个规则永远不会匹配。

选择:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(xi-admin|xi-admin/.*)$
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

或者使用相对寻址的另一种替代方法,我建议这样做,因为即使此目录稍后将被移动到目录层次结构中的其他位置,它仍然有效:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(xi-admin|xi-admin/.*)$
RewriteCond $1 !=favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]