htaccess密码保护目录和mod_rewrite RerwriteCond

时间:2012-06-10 02:13:14

标签: apache .htaccess mod-rewrite password-protection

我有一个网站,我想重定向所有请求接受1目录路径。

http://mysite.com/application
http://mysite.com/application/templates
http://mysite.com/application/admin(密码保护)

RewriteCond %{REQUEST_URI} !^\/application
RewriteRule ^.*$ http://mynewsite.com [R=307]

.htaccess上的重写引擎工作正常,除非访问受密码保护的/ admin目录。当我尝试请求它时,我被重定向。如果我重命名.htaccess文件夹中的/admin。它工作正常。我怀疑是浏览器(FF)正在请求与重定向匹配的另一个URL。如何保持目录密码受保护,但不能重定向?

1 个答案:

答案 0 :(得分:4)

添加:

RewriteCond %{REQUEST_URI} !401

现在它有效。我相信这是由于共享的webhost配置预先分配了4XX和5XX页面重定向。那就是那就是发生了什么。 !401并不完美,但对于我的简单应用程序,它的工作原理。我认为这样的事情会更好地捕获401作为uri的开头(模式未经测试):

RewriteCond %{REQUEST_URI} !^\/401