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内の特定のディレクトリを変更する方法について説明します。
この記事は役に立ちましたか ? どうすればさらに改善できますか ?
フィードバックを送信するにはログインする必要があります。