RewriteRule - 文件夹异常(带破折号)
问题描述:
我在我的网站根目录下安装了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]
答
尝试改变
RewriteCond %{REQUEST_URI} !^(xi-admin|xi-admin/.*)$
到
RewriteCond %{REQUEST_URI} !^/xi-admin
答
在您的配置,在一个规则参照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]