我尝试使用.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。
答案 0 :(得分:0)
在第一个域的配置文件中查找R=401
或ErrorDocument 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,请清除浏览器的缓存。