Loading...
IT

【備忘】WordPressのサイトURLを名前解決のできない異なる複数のネットワークからアクセスできるように変更する

こんにちはszkです。

WordPressは設定の項目に「サイトURL」が存在します。
例えばこのサイトの場合は”szkhaven.com”ですが、これを設定するとIPアドレス等で直接アクセスした際に自動的に「本来見せたいURL」にリダイレクトしてくれます。

インターネット上に公開しているサイトならば自分のドメインを入力すればよく、別セグメントからアクセスするとしてもhostsにさえ記載してしまえば問題ないのですが
社内のネットワークや検証ネットワーク等の「制限されたネットワーク」で複数ネットワークにWordpressを接続したいパターンもごくまれにあるかと思います。
Wordpressでは「複数サイト」機能が付いていますがこれは1つのWordpressで内容の異なるホームページを複数運用する際に必要な機能であり、一つのサイトを別のネットワークからアクセス可能にする機能ではありません。

このようなケースではアクセス元を見てサイトURLを書き換える処理が必要になります。

■wp-config.phpに処理を追加する

wordpressでは「GUI上で間違えて設定してしまったときの暫定対処」として紹介されている方法ですが
このファイル上にアクセス元を見てサイトURLを書き換える処理を書けば実装が可能です。

「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」の上に以下の処理を追加します。

//サイトURLのフレキシブル変更
// IPアドレスを取得して変数にセットする
$ipAddress = $_SERVER["REMOTE_ADDR"];
// stringへ変換
$ck_ipADD = (string) $ipAddress;

if(strpos($ck_ipADD,'<IPADD>') !== false){
define('WP_HOME','http://<wordpressURL>');
define('WP_SITEURL','http://<サイトURL>');
//特定のIPアドレスからのアクセス時
}
else(strpos($ck_ipADD,'<IPADD>') !== false){
define('WP_HOME','http://<WordpressURL>');
define('WP_SITEURL','http://<サイトURL>');
//通常のサイトURL
}

かなりごり押しですが、これでhostsに登録できないような環境からでも別アドレスを叩いてアクセスが可能となります。