2016-03-20 20 views
0

HTTP/1.1 403 Forbidenの結果にApache2 mod_substituteを使用する方法はありますか?apache2 mod_substitute with HTTP 403禁止コード

私は、mod_proxy、mod_substituteなどでApache2を使用しています。これは、Wordpressインストールをホストする複数のPHPサーバーのロードバランサとして使用します。返されたPHPサーバーの内容には、内部ホスト名とのリンクが含まれています。これらは、外部ドメイン名の代わりにmod_substituteに置き換えられます。この設定は、200ステータスコードのすべての結果に対して正常に動作しています。

しかし、Wordpressは403 Forbiddenを使用することがあります。たとえば、これらのページには「戻る」リンクが含まれています。これらのページのURLは、代理ルールに置き換えられません。 mod_substituteのドキュメントには、この問題に関する情報はありません。

プロキシ側の解決策が推奨されます。しかし、私はまたwordpressや自分のapache2 modを書いて返されたステータスコードを変更することを考えています。 <のVirtualHost内

おかげ

mod_substitute構成>

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

私は何も表示されません。成功した回答に制限します。どのようにフィルタを追加しましたか? – covener

+0

私は最初の投稿にmod_substitute設定を追加しました。 – Sven

+0

私の最初の分析は部分的に間違っていました。問題は403 Forbiddenにのみ存在し、302には存在しません。 WordpressのHTTPコードを変更することは可能ですが、望ましくありません。その他の提案は大歓迎です。 – Sven

答えて

0

A Wordpressの固有のソリューションは、プラグインに次のコードを追加します

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

この解決策は、新しいwpバージョン(> 4.4)では動作しません。 – Sven

関連する問題