我有一个maindomain.com
包含一个网站,这里的一些页面应该被临时重定向到我的子域tmp.maindomain.com
。所以我使用了这个重定向,它重定向到tmp.maindomain.com
,我得到了一个无限循环重定向到tmp.maindomain.com
:
redirect 301 /mypage.php https://tmp.maindomain.com/mypage.php
我的目标是,如果任何用户试图访问https://www.maindomain.com/mypage.php
或https://maindomain.com/mypage.php
,他应该被重定向302到https://tmp.maindomain.com/mypage.php
。
谢谢你们的帮助。
1条答案
按热度按时间pjngdqdw1#
如果子域和主域指向同一个位置(或主域的子目录),则会出现无限循环。
在这种情况下,您将需要使用mod_rewrite(与mod_alias相对)并显式检查请求的主机名。
这里的一些页面应该被重定向临时
但是你也使用了一个301permanent重定向。你需要使用一个302来代替。301是由浏览器持久缓存的,所以你需要确保在测试之前清除所有缓存。
在子域的
.htaccess
文件的 top 处,在任何现有的mod_rewrite指令之前,尝试执行以下操作。请注意,
RewriteRule
pattern(第一个参数)匹配的URL路径不以斜杠开头(与mod_aliasRedirect
指令不同)。$0
反向引用包含与整个RewriteRule
* 模式 * 匹配的URL路径。例如,在本例中为mypage.php
。这只是为了避免重复,因为您将重定向到目标上的相同URL路径。这默认为302临时重定向。