Apache 重定向指令在 400 次重定向后停止工作

Apache 重定向指令在 400 次重定向后停止工作

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

解决方案:删除此重定向后,一切都按预期工作。

相关内容