タイトルからは何のこっちゃわからないかもしれませんが・・・つまりはWordPressを以下のような構成にする方法ということです。
表示URL:http://example.com
インストールディレクトリ:http://example.com/wp
WordPressをインストールするには、たくさんのファイルをFTPサーバーに設置する必要があります。今回ご紹介する方法は、これらのファイルをサブディレクトリに入れて、サーバーの中をスッキリ整理するのが目的です。
ルートディレクトリにごちゃごちゃとファイルを設置したくないという場合は、サブディレクトリにWordPressを設置する方法をおすすめします。
WordPressを新規インストールする場合
まだWordPressをインストールしていない場合の手順です。
1. サブディレクトリ(今回はwp)にWordPressをインストールします。
2. 管理画面で[設定] – [一般設定]にアクセスし、以下のように設定します。
WordPressアドレス:http://example.com/wp/
サイトアドレス:http://example.com/
3. サブディレクトリに設置されているindex.phpと.htaccessファイルをルートディレクトリにコピーします。(移動ではなくコピー)
※パーマリンク設定を使っていない場合は、.htaccessファイルは存在しません。
※WordPressをWindows(IIS)サーバー上で動かしており、パーマリンク設定を行っている場合は、.htaccessファイルの代わりにweb.configファイルがあると思います。その場合は、index.phpをルートディレクトリにコピーし、web.configファイルはルートディレクトリに移動してください。
4. ルートディレクトリにコピーしたindex.phpを開き、以下のように変更します。
//変更前
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
//変更後
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
5. ルートディレクトリにコピーした.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>
※RewriteBaseとRewriteRuleのパスにサブディレクトリ(/wp/)が入っている場合は、パスを変更します(/wp/を取り除きます)。
6. http://example.com/wp/wp-admin/から管理画面にログインします。
7. [設定] – [パーマリンク設定]にアクセスし[変更を保存]をクリックして更新します。
※WordPressが.htaccessに書き込み可能であれば、自動で.htaccess を更新します。WordPressが.htaccessを書き換えられない場合は、新しいリライトルールが表示されるので、ルートディレクトリ内の.htaccessファイル内にコピーします。
これで、ファイルはwpフォルダの中だけど、URLはルートディレクトリとして表示、という状態になります。
すでにルートディレクトリにWordPressをインストールしている場合
すでにルートディレクトリにWordPressをインストール済みの場合は、以下のような手順で移動します。
なお、必ずバックアップを取得してから作業してください。
1. サブディレクトリ(今回はwp)を作成します。
2. 管理画面で[設定] – [一般設定]にアクセスし、以下のように設定します。
WordPressアドレス:http://example.com/wp/
サイトアドレス:http://example.com/
※この時点では、サブディレクトリにファイルが存在しないのでエラーメッセージが表示されます。これは無視してOKです。
3. WordPressのファイルをwpフォルダに移動します。
4. サブディレクトリのindex.phpと.htaccessファイルをルートディレクトリにコピーします。(移動ではなくコピー)
※パーマリンク設定を使っていない場合は、.htaccessファイルは存在しません。
※WordPressをWindows(IIS)サーバー上で動かしており、パーマリンク設定を行っている場合は、.htaccessファイルの代わりにweb.configファイルがあると思います。その場合は、index.phpをルートディレクトリにコピーし、web.configファイルはルートディレクトリに移動してください。
5. ルートディレクトリにコピーしたindex.phpを開き、以下のように変更します。
//変更前
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
//変更後
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
6. ルートディレクトリにコピーした.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>
※RewriteBaseとRewriteRuleのパスにサブディレクトリ(/wp/)が入っている場合は、パスを変更します(/wp/を取り除きます)。
7. http://example.com/wp/wp-admin/から管理画面にログインします。
8. [設定] – [パーマリンク設定]にアクセスし[変更を保存]をクリックして更新します。
※WordPressが.htaccessに書き込み可能であれば、自動で.htaccess を更新します。WordPressが.htaccessを書き換えられない場合は、新しいリライトルールが表示されるので、ルートディレクトリ内の.htaccessファイル内にコピーします。
あとがき
文字にするとややこしそうに見えますが、実際にやってみると簡単です。作業時間は、5分程度で終わります。
ルートディレクトリにあるファイルを整理したい方は、ぜひ試してみてください。