WordPressの URL を設置ディレクトリとは異なるディレクトリで表示する

http://suirakukai.com/wordpress/22/wordpress-change-in-directory

WordPress をインストールする際、ルートディレクトリ直下ではなく、「wordpress」 とか 「wp」 などの適当な名前をつけたサブディレクトリにインストールする場合がほとんどだと思います。

私もそのようにしたんですが、「wordpress」 フォルダに WordPress をインストールした場合だと、サイトの URL は http://www.hogehoge.com/wordpress になるわけで。特にディレクトリをわける理由がなければ、「wordpress」というサブディレクトリ名を取っ払って、 http://www.hogehoge.com で表示させたいのが人情というものですよね。

ということで、WordPress の設置ディレクトリとは異なるディレクトリで URL を表示する方法をメモしておきます。
ここでは http://www.hogehoge.com/wordpress から http://www.hogehoge.com に変更する、という前提で話を進めます。

  1. 管理画面 「設定」→「一般設定」の「ブログのアドレス(URL)」を希望のアドレスに書き換えて保存。
    ex.) http://www.hogehoge.com
  2. ルートディレクトリに、WordPress 本体がおいていあるディレクトリの index.php,.htaccess を移動する。
  3. ルートディレクトリに移動した index.php を編集する。
<変更前>
<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./wp-blog-header.php'); ※ここが変更箇所
?>

4行目 require(’./wp-blog-header.php’); を require(’./○○○○/wp-blog-header.php’); と書き換えて保存。(「○○○○」は、WordPress 本体をインストールしてあるディレクトリ名)

<変更後>
<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./○○○○/wp-blog-header.php');
?>

この index.php は、WordPress 内部の動作命令すべてを受け取るファイルです(wp-blog-header.php から読み取っている)。なので、ここで編集した index.php から wp-blog-header.php へのパスを WordPress 本体がインストールされているサブディレクトリをはさんだパスに変更する、ということになります。

  1. .htaccess のパーミッションを書き込み可能にする。(mod_rewrite ルールの変更。書き込み可能にしておけば、自動的に .htaccess の中身を変更してくれます。mod_rewrite ルールは手動で書き換えることも可能です。手順 6 を参考にしてください)

.htaccess の変更前のソースは以下。

<変更前>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /○○○○/index.php [L] ※ここが変更箇所
</IfModule>
# END WordPress

.htaccess の中身を確認。以下のように書き換わっていれば OK。

<変更後>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] ※書き換わった状態
</IfModule>
# END WordPress

手順 2 で説明したように、変更前は /○○○○/index.php を読み込ませていましたが、ルートディレクトリ直下に移動した /index.php を読み込ませるように.htaccess で操作しています。

  1. http://www.hogehoge.com/○○○○/wp-login.php からログインしなおす。
  2. パーマリンク設定をデフォルトから変更していた場合、再度保存しなおす。
    ※手動で .htaccess を書き換える場合には、管理画面のいちばん下に書き換えるためのソース(↑上のソース)が出力されますので、それを.htaccess にコピペして保存します。
  3. 新しいサイト URL にアクセスし、正常に表示されるか確認。
  4. .htaccess のパーミッションを書き込み不能に戻す。

流れとしては、こんなかんじです。

自分でやってみた感触としては、やはり WordPress 本体のつくりがわかってないとダメじゃん、ってのと、.htaccess の使い方というか、.htaccess の働きもきちんとわかったうえで使わないといけない、ということでした…

結果的にできちゃえばいいんでしょうけれど、なんかね、されるがままにされちゃった、やったらこうなっちゃった、ってのがいちばんきもち悪い(笑)。そんなの全然身についてないもの。なので、あれこれ探ってみるのがいいな、と思いました。失敗したら元に戻せばいいんだし。

わからないままおわる、そんなのはイヤだ、といったのはアンパンマンでしたね。そういうことです。