.htaccess:身份验证和重定向

时间:2012-02-15 17:26:39

标签: .htaccess authentication redirect http-status-code-301

我尝试使用.htaccess将我的某个域重定向到另一个域:

RewriteEngine on
RewriteRule !^admin($|/) http://mydomain.com%{REQUEST_URI} [L,R=301]

正如您所看到的,我不想重定向指定的文件夹(" admin"),因为该目录实际上有内容。

问题是我在该目录中有另一个.htaccess代码:

AuthName "You must login"
AuthUserFile /path/to/.htpasswd
AuthType Basic
require valid-user

当我在浏览器中访问非重定向文件夹时,它会重定向到mydomain.com上的401.html页面。

我该如何解决这个问题?我想将所有内容重定向到mydomain.com,目录" admin"这需要auth。

2 个答案:

答案 0 :(得分:0)

在第一个域的配置文件中查找R=401ErrorDocument 401。有些东西正在设置一个自定义401页面,然后与您的重写规则匹配,并将浏览器重定向到mydomain.com

答案 1 :(得分:0)

一个疏忽的陷阱是你的浏览器可能在测试期间缓存你的重定向。因此,当测试从R = 301中移除301以自行留下R标志时。

因此:

RewriteRule !^admin($|/) http://example.com%{REQUEST_URI} [L,R]

如果您对htaccess重定向的工作方式感到满意,请将R标志更改为R = 301(永久重定向)。

如果您一直使用R = 301,请清除浏览器的缓存。