サイトURLとwordpressのURLが違う場合の設定方法

これは様々なところで言われているので自分用のメモ書き程度のお話。

前提条件としてサーバに対して以下の2条件が必要です。

1)FFFTPなどのソフトでFTP接続できる
2).htaccessが設置できる

.htaccessとは何ぞや?という方はこちらのサイトなどを参考にしてください。

 

さて、では実際の設定について解説します。

たとえばサイトURLが『http://hoge.jp』で、wordpressのURLが『http://hoge.jp/wp』だった場合・・・

 

【1】/wp/index.php を /index.php へコピーする

wordpress設置ディレクトリの第一階層にあるindex.phpを、実際のURLの第一階層にコピーします。この際、実際のURLの第一階層にindex.htmlや別のindex.php等がある場合は名前を変えて保存(_index.htmlなど)し、http://hoge.jp にアクセスしたらwordpressからコピーしたindex.phpが読み込まれるようにしてください。

 

【2】index.phpの内容を書き換える

index.phpには『require( dirname( __FILE__ ) . ‘/wp-blog-header.php’ );』という記述があるはずですので、これを少し書き換えます。

require( dirname( __FILE__ ) . ‘/wp-blog-header.php’ );

require( dirname( __FILE__ ) . ‘/wp/wp-blog-header.php’ );
という風に、実際のwordpress設置ディレクトリの wp-blog-header.php を指すようにします。

 

【3】.htaccessを設置する

.htaccessを設置します。パーマリンク設定の変更などで既に生成されている場合は基本的にそれを【1】で移動した場所と同じ場所にコピーしてください。無い場合はファイルを新しく作成します。で、中身はこんな記述になります。

.htaccessの記述
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

 

【4】wordpress管理画面の情報を変更する

wordpressの管理画面を開き、設定→一般と進んで以下のように設定して保存します。

WordPress アドレス (URL):http://hoge.jp/wp
サイトアドレス (URL):http://hoge.jp

 

これで設定は完了です。

ひとつ気をつけるとすれば、例えば『元サイトがルートディレクトリに存在してリプレイスのためwpディレクトリ以下で構築し、最後にこの設定を行ってリプレイスする』というよくありがちな場合です。サイト内のpiyoという固定ページへのリンクが例えば『http://hoge.jp/wp/piyo』と書かれていた場合、実際には『http://hoge.jp/piyo』というリンクでないと設定後は404になってしまいます。でも構築時は『http://hoge.jp/wp/piyo』でないと反応しません。ということはリンク全部書き換えるのか!?という超絶面倒な話になりそうですが、一応自分なりの回避策はあるのでそれは後日公開したいと思います。