WordPress を専用ディレクトリに配置する

WordPress をウェブサイトのルート(例えば http://example.com)で動かしたいけれど、WordPress のファイルすべてをドキュメントルートディレクトリに散らかしたくない人はたくさんいます。WordPress はサブディレクトリに WordPress ファイルを設置しても、ウェブサイトをサイトのルートに表示することができます。

バージョン 3.5 以降、マルチサイトのユーザーは以下に記載されているすべての機能を使用することができます。WordPress 3.5 より古いバージョンを実行している場合は、マルチサイトの WordPress をサブディレクトリへインストールする前に新しいバージョンへ更新してください。

テーマ/プラグイン開発者への注意: これはみなさんのコードを WordPress から切り離しません。テーマとプラグインは引き続き wp-content フォルダー内に置きます。

ルートディレクトリにインストール済みの場合

example.com に WordPress をインストールしたとします。WordPress のインストールをサブディレクトリに移動する 2 つの方法があります。

  1. SITE-URL の変更なし ( example.com のまま)
  2. SITE-URL を変更した場合 ( example.com/subdirectory にリダイレクトされます )

方法1 (URL の変更なし)

  1. WordPress をルートフォルダーにインストールした後、すべてをルートフォルダーからサブディレクトリに移動します。
  2. ルートフォルダーに .htaccess ファイルを作成し、このコンテンツを中に置きます (example.commy_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 をすでにインストールされている場合、いくつかの手順はすでに自動的に行われている可能性があります) 。

  1. WordPress のコアファイルを置くための、新しいディレクトリを作成する (この手順では仮に /wordpress とします) 。
    (linux の場合、www ディレクトリで mkdir wordpress を実行。作成した wordpress ディレクトリをおそらく chown apache:apache することになるでしょう。)
  2. 管理画面で一般設定を開く。
  3. WordPress のアドレス (URL) 欄を、WordPress コアファイルの新しい URL に変更する。例 : http://example.com/wordpress
  4. サイトのアドレス (URL) 欄を、ルートディレクトリの URL に変更する。例 : http://example.com
  5. 変更を保存をクリック。(重要 : この時点ではエラーメッセージが出ても気にせず、サイトを表示しようとしないでください ! おそらく「ファイルが存在しない」というメッセージが出るはずです。)
  6. WordPress コアファイルを、 (ルートディレクトリから) 手順 1 で作成した新しいディレクトリ (wordpress) へ移動する。
  7. WordPress ディレクトリにある index.php と .htaccess ファイルを、手順 4 で設定したサイトのルートディレクトリ(「サイトのアドレス」)へコピーする。移動ではなくコピーすることに注意!
    パーマリンク設定を使っていなければ、.htaccess ファイルは存在しない場合があります。
    WordPress を Windows (IIS) サーバー上で動かしており、パーマリンク設定を使っている場合は、.htaccess ファイルの代わりに web.config ファイルが WordPress のディレクトリにあるはずです。この場合、上記の通り index.php をルートディレクトリへ(移動ではなく)コピーしてください。そして web.config ファイルは(.htaccess とは違って)ルートディレクトリへ(コピーではなく)移動してください。
  8. ルートディレクトリの index.php ファイルをテキストエディタで開く。
  9. 次の修正を行う。
    修正前 :
    require( dirname( __FILE__ ) . '/wp-blog-header.php' );
    修正後 : WordPress コアファイルの新ディレクトリ名を使います。
    require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );
  10. 新しい URL からログインする。例えば http://example.com/wordpress/wp-admin/ など。
  11. パーマリンクを設定している場合、パーマリンク設定を開き、パーマリンク構造を更新してください。.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内の特定のディレクトリを変更する方法について説明します。

この記事は役に立ちましたか ? どうすればさらに改善できますか ?