• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

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

提供: WordPress Codex 日本語版
2015年10月24日 (土) 21:38時点におけるGblsm (トーク | 投稿記録)による版 (残りを和訳。)

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

この項目「WordPress を専用ディレクトリに配置する」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

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

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

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


サブディレクトリに新規インストールする(した)場合

新規インストール時に WordPress ファイル一式を専用ディレクトリにまとめて置けば、作業は最も簡単です。

サーバの公開ディレクトリのサブディレクトリ(この説明では http://example.com/wp/ と仮定)に WordPress ファイルを入れてインストールした後、下記手順の 1、3、6 を飛ばして行ってください。

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

WordPress をルートディレクトリにインストール済みの場合、WordPress ファイルを専用ディレクトリへ移動するには次のようにします(ディレクトリ構成例も参照)。

注意: 作業の順番を間違えたり飛ばしたりすると、サイトにアクセスできなくなることがあります。ひとつずつ確実に進めましょう。

  1. WordPress のコアファイルを置くための、新しいディレクトリを作成する(この手順では仮に wp とする)。
    (linux の場合、www ディレクトリで mkdir wp を実行。作成した wp ディレクトリでおそらく "chown apache:apache" することになるでしょう。)
  2. 管理画面設定 > 一般設定を開く。
  3. WordPress のアドレス (URL) 欄を、WordPress コアファイルの新しい URL に変更する。例:
    WordPress のアドレス (URL) > http://example.com/wp
  4. サイトのアドレス (URL) 欄を、ルートディレクトリの 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 とは違って)ルートディレクトリへ(コピーではなく)移動してください。
    • 存在するはずの .htaccess ファイルが見えないときは、FTPクライアント隠しファイルの表示設定を行なうこと。
  8. ルートディレクトリの index.php ファイルを編集する。
    1. ルートディレクトリの index.php ファイルをテキストエディタで開く。
    2. 次の修正を行う。
      修正前:
      require( dirname( __FILE__ ) . '/wp-blog-header.php' );
      修正後:WordPress コアファイルの新ディレクトリ名を使います。
      require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
    3. ファイルを上書き保存する。
  9. 新しい URL からログインする。例えば http://example.com/wp/wp-admin/ など。
  10. パーマリンクを設定している場合、パーマリンク設定を開き、パーマリンク構造を更新してください。.htaccess に適切なパーミッションを設定してあれば、WordPress が自動で .htaccess を更新します。もし WordPress が .htaccess を書き換えられない場合、新しいリライトルールが表示されるので、(メインの index.php ファイルと同じディレクトリの).htaccess ファイル内へ手動でコピーしてください。


既存のサブディレクトリを使ってルートディレクトリに表示する場合

WordPress をすでにサブディレクトリにインストールしている場合(例:http://example.com/wp)は以下の手順に従ってください。

  1. 管理画面設定 > 一般設定を開く。
  2. サイトのアドレス (URL) 欄を、ルートディレクトリの URL に変更する。例:
    サイトアドレス (URL) > http://example.com
  3. 変更を保存をクリック。(重要:この時点ではエラーメッセージが出ても気にせず、サイトを表示しようとしないでください!おそらく「ファイルが存在しない」というメッセージが出るはずです。)
  4. WordPress ディレクトリにある index.php.htaccess ファイルを、手順 2 で設定したサイトのルートディレクトリ(「サイトのアドレス」)へコピーする。移動ではなくコピーすることに注意! — コピー先のディレクトリ名はおそらく wwwpublic_html でしょう。
    • パーマリンク設定を使っていなければ、.htaccess ファイルは存在しない場合があります。
    • WordPress を Windows (IIS) サーバー上で動かしており、パーマリンク設定を使っている場合は、.htaccess ファイルの代わりに web.config ファイルが WordPress のディレクトリにあるはずです。この場合、上記の通り index.php をルートディレクトリへ(移動ではなく)コピーしてください。そして web.config ファイルは(.htaccess とは違って)ルートディレクトリへ(コピーではなく)移動してください。
    • 存在するはずの .htaccess ファイルが見えないときは、FTPクライアント隠しファイルの表示設定を行なうこと。
  5. ルートディレクトリの index.php ファイルを編集する。
    1. ルートディレクトリの index.php ファイルをテキストエディタで開く。
    2. 次の修正を行う。
      修正前:
      require( dirname( __FILE__ ) . '/wp-blog-header.php' );
      修正後:WordPress コアファイルの新ディレクトリ名を使います。
      require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
    3. ファイルを上書き保存する。
  6. 新しい URL からログインする。例えば http://example.com/wp/wp-admin/ など。
  7. パーマリンクを設定している場合、パーマリンク設定を開き、パーマリンク構造を更新してください。.htaccess に適切なパーミッションを設定してあれば、WordPress が自動で .htaccess を更新します。もし WordPress が .htaccess を書き換えられない場合、新しいリライトルールが表示されるので、(メインの index.php ファイルと同じディレクトリの).htaccess ファイル内へ手動でコピーしてください。


参考:途中のステップでサイトが一時的に動作しなくなるので、例えば真夜中などサイトがアクセスされにくい時にこの作業を行うのがベストです。

もしサイトにコンテンツがすでにある場合は、データベース内に残る古い URL への参照をどうするかについて ドメイン名またはURLを変更するとき を見てください。


ディレクトリ構成例

  • public_html (ドキュメントルート=公開ディレクトリ http://example.com/
    • .htaccesswp/.htaccess からコピー。パーミッションを書き込み可能[1]にしておき、手順 10(7)で更新
    • index.phpwp/index.php からコピー。手順 8(5)で修正
    • wp/ (新ディレクトリ)
      • wp-admin/ (ログイン)
      • wp-content/
      • wp-includes/
      • .htaccess → ルートへコピー
      • index.php → ルートへコピー
      • ...
  1. 707 等、ホスティングによって適切な値は異なります。)

サイトの URL をサブディレクトリに対応させる

例えば会議のウェブサイトのように、内容が毎年大きく変わる WordPress サイトがときどきあります。もし毎年のサイトを /2010、/2011、/2012 のようなサブディレクトリへインストールして、それでもルートドメイン(yoursite.com)を特定のサブディレクトリ(普通は最新の)へ自動的に転送したければ、次のテクニックが使えます:

  1. WordPress をサブディレクトリへインストールする。例えば /2015, /blog または /wp のように。
  2. ルートフォルダー(サブディレクトリのフォルダーではなく)にある .htaccess ファイルをダウンロードしてテキストエディタで開く。
  3. .htaccess ファイルへ次の内容を追加する:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?YourDomain.com$
RewriteRule ^(/)?$ blog [L]
  1. 上記のコードの「YourDomain.com」を自分のルートドメインへ変更。
  2. 上記のコードの「blog」をサブディレクトリへ変更。
  3. .htaccess ファイルを保存してからルートフォルダーへアップロードする。

ここでユーザーがルートドメイン(yoursite.com)へ行くと、指定したサブディレクトリへ自動的に転送されます。翌年の会議サイトのような新しいサブディレクトリへ転送したい時は、.htaccess 内の転送コードを変えるだけです。

参考:このコードは Site 5 の次の投稿から転載しました:How to Redirect Your Domain to a Subfolder Using .htaccess


特定の WordPress フォルダの引越し

以下のリンクはWordPress内の特定のディレクトリを変更する方法について説明します。


最新英語版: WordPress Codex » Giving WordPress Its Own Directory最新版との差分