WordPress リバースプロキシ対応
WordPressをリバースプロキシ配下においた時、アクセスするURIも変えてしまうような場合の設定方法を探してもなかったので覚書。
しなくてもアクセスはできるんだけど、IPアドレスがもろ出てしまい、かっこ悪いための対策。
リーバースプロキシ:www.reverse.com
リバースプロキシからWPサーバをアクセスするときのURI:/hoge
WPサーバ:192.168.1.xxx/wp
http://www.reverse.com/hogeへのアクセスを192.168.1.xxx/wpで設定しているWordPressが応答する場合。
リバースプロキシの設定は割愛。
wp-config.phpに以下のコードを追加。
/**
* リバースプロキシ経由でのアクセスの場合の処理
*/
if ( strcmp($_SERVER['HTTP_X_FORWARDED_HOST'],'www.reverse.com') == 0 )
{
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
$tmp = $_SERVER['REQUEST_URI'];
$tmp = str_replace('/wp','/hoge',$tmp);
$_SERVER['REQUEST_URI'] = $tmp;
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
define('WP_SITEURL', 'http://www.reverse.com/hoge');
define('WP_HOME', 'http://www.reverse.com/hoge');
}
要はURIも書き換え必要ということ。IPアドレスだけが変わるような設定方法はいろいろ載ってるけど。