apache2 mod_substitute with HTTP 403 Forbidden code

时间:2016-03-20 14:58:47

标签: wordpress apache2.4

有没有办法将Apache2 mod_substitute用于HTTP / 1.1 403 Forbiden结果?

我使用一个带有mod_proxy,mod_substitute等的Apache2作为托管Wordpress安装的多个PHP服务器的负载均衡器。返回的PHP服务器内容包含具有内部主机名的链接。这些被mod_substitute替换为外部域名。使用200状态代码,此设置适用于所有结果。

但Wordpress有时会使用403 Forbidden。例如,这些页面包含" back" -links。这些页面中的URL不会被我的替换规则替换。 mod_substitute的文档没有提供有关此问题的信息。

首选代理端解决方案。但我也在考虑通过wordpress更改返回的状态代码或编写自己的apache2 mod。

由于

< VirtualHost>

中的

mod_substitute配置

<Location />
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute "s|http://backend.tld/|http://frontend.tld/|in"
</Location>

1 个答案:

答案 0 :(得分:0)

Wordpress特定的解决方案是将以下代码添加到插件中:

function change_403_codes() {
    if(http_response_code () == 403) {
       http_response_code(200);
    }
}
add_action ('shutdown','change_403_codes');