如何有条件地修改Apache响应头'Location'

use*_*979 8 apache header response mod-headers

我需要能够在某个模式的位置响应标头中测试URL字符串,如果匹配则将其替换为另一个模式.

例如,如果响应是位置:http://wrongserver.com我需要将其更改为位置:http://rightserver.com

似乎mod_setenvif仅对请求标头进行操作,因此我无法将其与"标头集"指令相结合以实现我想要的目标.

内容未被代理,因此使用mod_proxy指令似乎不是一个选项.

谢谢,伯尼

arc*_*444 10

你应该可以这样做 mod_headers

Header edit Location ^http://wrongserver.com$ http://rightserver.com
Run Code Online (Sandbox Code Playgroud)

更多信息:http://httpd.apache.org/docs/current/mod/mod_headers.html#header

  • @PrShadoko 如果您不使用“$”,则正则表达式仅匹配主机名,URL 的其余部分应保持不变。[mod_headers 文档](https://httpd.apache.org/docs/current/mod/mod_headers.html#examples) 中唯一的“编辑”示例演示了这种事情(它们将 `https:` 协议替换为 ` http:`)。 (2认同)