2010-08-12 71 views
1

我在我的网站根目录下安装了drupal,它下面有一个名为xi-admin的目录,该目录在做密码保护时有一个.htaccess。问题是,它是否将http://www.example.com/xi-admin/改写回index.php?RewriteRule - 文件夹异常(带破折号)

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] 

回答

0

尝试改变

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

RewriteCond %{REQUEST_URI} !^/xi-admin 
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]