WordPress をウェブサイトのルート(例えば http://example.com)で動かしたいけれど、WordPress のファイルすべてをドキュメントルートディレクトリに散らかしたくない人はたくさんいます。WordPress はサブディレクトリに WordPress ファイルを設置しても、ウェブサイトをサイトのルートに表示することができます。
バージョン 3.5 以降、マルチサイトのユーザーは以下に記載されているすべての機能を使用することができます。WordPress 3.5 より古いバージョンを実行している場合は、マルチサイトの WordPress をサブディレクトリへインストールする前に新しいバージョンへ更新してください。
テーマ/プラグイン開発者への注意: これはみなさんのコードを WordPress から切り離しません。テーマとプラグインは引き続き wp-content フォルダー内に置きます。
ルートディレクトリにインストール済みの場合
example.com に WordPress をインストールしたとします。WordPress のインストールをサブディレクトリに移動する 2 つの方法があります。
- SITE-URL の変更なし (
example.comのまま) - SITE-URL を変更した場合 (
example.com/subdirectoryにリダイレクトされます )
方法1 (URL の変更なし)
- WordPress をルートフォルダーにインストールした後、すべてをルートフォルダーからサブディレクトリに移動します。
- ルートフォルダーに
.htaccessファイルを作成し、このコンテンツを中に置きます (example.comとmy_subdirを変更するだけです) :
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/my_subdir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /my_subdir/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ my_subdir/index.php [L]
</IfModule>
以上です 🙂
方法2 (URL を変更する)
移行プロセス
(追記 サブディレクトリに WP をすでにインストールされている場合、いくつかの手順はすでに自動的に行われている可能性があります) 。
- WordPress のコアファイルを置くための、新しいディレクトリを作成する (この手順では仮に /wordpress とします) 。
(linux の場合、www ディレクトリでmkdir wordpressを実行。作成したwordpressディレクトリをおそらくchown apache:apacheすることになるでしょう。) - 管理画面で一般設定を開く。
- WordPress のアドレス (URL) 欄を、WordPress コアファイルの新しい URL に変更する。例 :
http://example.com/wordpress - サイトのアドレス (URL) 欄を、ルートディレクトリの URL に変更する。例 :
http://example.com - 変更を保存をクリック。(重要 : この時点ではエラーメッセージが出ても気にせず、サイトを表示しようとしないでください ! おそらく「ファイルが存在しない」というメッセージが出るはずです。)
- WordPress コアファイルを、 (ルートディレクトリから) 手順 1 で作成した新しいディレクトリ (
wordpress) へ移動する。 - WordPress ディレクトリにある
index.phpと.htaccessファイルを、手順 4 で設定したサイトのルートディレクトリ(「サイトのアドレス」)へコピーする。移動ではなくコピーすることに注意!
パーマリンク設定を使っていなければ、.htaccess ファイルは存在しない場合があります。
WordPress を Windows (IIS) サーバー上で動かしており、パーマリンク設定を使っている場合は、.htaccessファイルの代わりにweb.configファイルが WordPress のディレクトリにあるはずです。この場合、上記の通りindex.phpをルートディレクトリへ(移動ではなく)コピーしてください。そしてweb.configファイルは(.htaccessとは違って)ルートディレクトリへ(コピーではなく)移動してください。 - ルートディレクトリの
index.phpファイルをテキストエディタで開く。 - 次の修正を行う。
修正前 :require( dirname( __FILE__ ) . '/wp-blog-header.php' );
修正後 : WordPress コアファイルの新ディレクトリ名を使います。require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' ); - 新しい URL からログインする。例えば
http://example.com/wordpress/wp-admin/など。 - パーマリンクを設定している場合、パーマリンク設定を開き、パーマリンク構造を更新してください。
.htaccessに適切なパーミッションを設定してあれば、WordPress が自動で.htaccessを更新します。もし WordPress が.htaccessを書き換えられない場合、新しいリライトルールが表示されるので、(メインのindex.phpファイルと同じディレクトリの).htaccessファイル内へ手動でコピーしてください。
.htaccess の変更
場合によっては、サブディレクトリ (/2010, /2011, /latest など) に個別のバージョンをインストールし、その Webサイトを (普通は最新の)バージョンを使用させて、ルートの WordPress を サブディレクトリにインストールしたいこともあります。( /my_subdir など)
その場合はルートディレクトリの .htaccess ファイルに次のように追加します。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ my_subdir[L]
これでユーザーがルートドメイン (example.com) へ行くと、指定したサブディレクトリへ自動的にリダイレクトされます。
参考:このコードは Site 5 の次の投稿から転載しました:How to Redirect Your Domain to a Subfolder Using .htaccess。
特定の WordPress フォルダの引っ越し
以下のリンクはWordPress内の特定のディレクトリを変更する方法について説明します。
この記事は役に立ちましたか ? どうすればさらに改善できますか ?
フィードバックを送信するにはログインする必要があります。