.htaccess:身份验证和重定向

.htaccess:身份验证和重定向,.htaccess,authentication,redirect,http-status-code-301,.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 Auth

我正在尝试使用.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”需要验证。

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

一个不小心的陷阱是,您的浏览器可能在测试期间缓存了您的重定向。因此,在测试时,从R=301中删除301,以保留R标志本身

因此:

一旦您对htaccess重定向的工作感到满意,则将R标志更改为R=301(永久重定向)

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

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