http://site1.com
一位业务合作伙伴要求我们实现从到 的1000 多个 URL 重定向列表https://site2.com
。我们设置了一个(旧)Apache 2.2,无法升级,如下所示:
<VirtualHost *:80>
ServerName site1.com
ServerAlias *.site1.com
Redirect 301 /url-0001 https://site2.com/...
Redirect 301 /url-0002 https://site2.com/...
Redirect 301 /url-0003 https://site2.com/...
...
Redirect 301 /url-1234 https://site2.com/url-...
RedirectMatch 301 ^(.*)$ https://site2.com/
</VirtualHost>
问题:
第一个 400+ 之后的任何重定向均无法正常工作,例如,以下重定向:
http://site1.com/url-410 --> https://site2.com/foo
我们得到:
http://site1.com/url-410 --> https://site2.com/url-410
看起来 URI 没有被正确重写。
问题: 在单个虚拟主机中可以使用的重定向指令数量是否有限制,或者我在这里遗漏了一些明显的内容?
答案1
根本原因:重定向 #400 如下所示:
Redirect 301 / https://site2.com/
此 URL 之后的所有 URL 都获得404
。
解决方案:删除此重定向后,一切都按预期工作。