如何创建.htaccess重写规则忽略身份验证请求

时间:2013-12-26 11:13:06

标签: php apache .htaccess mod-rewrite trac

我正在使用apache 2.2.25运行cpanel并具有以下站点自定义配置设置

WSGIScriptAlias /trac /usr/share/trac/cgi-bin/trac.wsgi

<Directory /usr/share/trac>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

<Location "/trac/login">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /home/[user]/public_svn/conf/htpasswd
  Require valid-user
</Location>

我尝试了以下.htaccess配置和其他配置,但是当我转到www.mydomain.com/trac/login时,验证提示没有显示,而是重定向到index.php

<IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /
     RewriteRule ^svn - [L,NC]
     RewriteRule ^trac - [L,NC]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

有没有办法创建.htaccess重写条件来跳过身份验证请求?

1 个答案:

答案 0 :(得分:0)

这是一个有效的解决方案,但我不知道为什么。我将以下内容添加到index.php文件的开头。

<?php

if (substr($_SERVER['REQUEST_URI'],0,4) == '/svn') {
    die();
}

if (substr($_SERVER['REQUEST_URI'],0,5) == '/trac') {
    die();
}

?>

如果有人知道为什么会这样,我很想知道!