WordPressのインストール先をサブディレクトリに変更する手順(.htaccess設定解説)

2024.01.09

はじめに:なぜWordPressをサブディレクトリに置くのか?

Webサイトを運営していると、「WordPressのコアファイルと、他のファイル(静的HTMLなど)をスッキリ分けたい」と感じることはありませんか?

通常、WordPressをインストールすると、ドメインのルートディレクトリ(例: www/)直下に wp-config.phpwp-content フォルダなどが配置されます。

www/
    ├ wp-config.php
    ├ wp-content/
    ├ wp-admin/
    ├ index.php
    └ .htaccess

この構成はシンプルですが、ルートディレクトリが雑然としがちです。
そこで今回は、WordPressのコアファイル一式を特定のサブディレクトリ(例: /manage/)に移動させつつ、Webサイトの表示URLはルート(https://example.com/)のまま維持する方法を解説します。

この設定により、以下のようなスッキリしたディレクトリ構成を目指します。

www/
    ├ manage/  (ここにWordPressコアファイル一式を移動)
    │   ├ wp-config.php
    │   ├ wp-content/
    │   └ ...
    ├ index.php  (ルート表示用に編集)
    └ .htaccess  (ルート表示用に編集)

【本記事の前提】
この記事は、https://example.com/manage/ というURLでインストールされたWordPressを、https://example.com/ で表示させたい、というニーズに基づいています。もし、https://example.com/manage/ のまま表示して問題ない場合は、これから説明する作業の多くは不要です。

manage というディレクトリ名は一例です。wpcms など、プロジェクトのルールに合わせて読み替えてください。


WordPressをサブディレクトリに移動する手順

それでは、具体的な手順を見ていきましょう。作業前に、必ずファイルのバックアップを取得してください。

ステップ1. サブディレクトリの作成とファイル移動

まず、WordPressのインストール先と同じ階層(例: www/)に、新しいディレクトリを作成します。(ここでは例として manage とします)

次に、.htaccessindex.php除く、すべてのWordPress関連ファイルとディレクトリ(wp-config.php, wp-content/, wp-admin/, wp-includes/ など)を、作成した manage ディレクトリ内に移動させます。

ステップ2. index.php.htaccess をルートにコピー

manage ディレクトリ内に移動させたファイルの中から、.htaccessindex.php の2つを、ルートディレクトリ(www/)にコピーします。

※この時点で manage ディレクトリ内の .htaccess は不要になるため、削除しておくと混乱を避けられます。

ステップ3. ルートディレクトリの .htaccess を編集

ルートディレクトリ(www/)にコピーした .htaccess を開き、内容を以下のように変更します。manage の部分は、ご自身が作成したサブディレクトリ名に置き換えてください。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/manage/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /manage/$1
RewriteRule ^(/)?$ manage/index.php [L]
</IfModule>

ステップ4. ルートディレクトリの index.php を編集

次に、ルートディレクトリ(www/)の index.php を開き、最終行にある require 文のパスを変更します。

変更前:

require __DIR__ . '/wp-blog-header.php';

変更後: (/manage を追記)

require __DIR__ . '/manage/wp-blog-header.php';

ステップ5. WordPress管理画面でURL設定を変更

ここまでの設定で、サイトの表示はルートURL(https://example.com/)に切り替わっているはずですが、管理画面へのログインURLが変更されています。

ブラウザで、https://example.com/manage/wp-login.php のように、新しいサブディレクトリ経由のURLで管理画面にアクセスし、ログインしてください。

ログイン後、「設定」>「一般」メニューを開き、以下の2つの項目を編集します。

  • WordPress アドレス (URL):

    https://example.com/manage

    (WordPressのコアファイルがある場所)
  • サイトアドレス (URL):

    https://example.com

    (サイトを実際に表示する場所)

変更を保存します。

【注意点】
この設定を保存すると、管理画面からログアウトさせられる場合があります。再度 /manage/wp-login.php からログインし直してください。

ステップ6. パーマリンク設定の更新

CSSが効かない、下層ページが404エラーになるなどの問題が発生した場合、URLの書き換えルール(リライトルール)がうまく反映されていない可能性があります。

「設定」>「パーマリンク設定」を開き、何も変更せずに「変更を保存」ボタンをクリックしてください。これにより、新しいURL構造で .htaccess の情報が更新されます。

ステップ7. 完了

これで全ての設定は完了です!

サイトが https://example.com/ で正しく表示され、管理画面が https://example.com/manage/wp-login.php でアクセスできることを確認してください。


(補足)作業の順序について

今回は「ファイルを先に移動し、後から管理画面でURLを変更する」という手順を取りました。

先に管理画面でURLを変更してからファイル移動を行う方法もありますが、URL変更直後にサイトが表示できなくなり、焦ってしまう可能性があります。初心者の方は、今回紹介した手順(ファイル移動 → URL変更)の方が、落ち着いて作業を進めやすいためおすすめです。

参考サイト


よくある質問(FAQ)

Q1. 設定後、サイトが真っ白になったり、500エラーが出たりします。
A1. .htaccess の記述ミスが最も考えられます。特に manage の部分など、サブディレクトリ名が正しいか確認してください。また、index.phprequire パスが間違っている可能性もあります。もう一度、手順3と4を見直してみましょう。
Q2. なぜWordPressのアドレスとサイトアドレスを分けるのですか?
A2. 「WordPress アドレス」はWordPressのシステム本体がどこにあるかを示し、「サイトアドレス」は訪問者がWebサイトを見るためのURLを示します。これらを分けることで、「システムは /manage/ に置き、表示は / で行う」という柔軟な構成が可能になります。
Q3. この設定を元に戻す(サブディレクトリからルートに)にはどうすればよいですか?
A3. 基本的には逆の手順を行います。まず管理画面で「WordPress アドレス」と「サイトアドレス」を両方ともルート(例: https://example.com)に戻します。次に、/manage/ 内の全ファイルをルートに移動させ、ルートにある .htaccessindex.php をWordPressのデフォルトのもの(あるいはバックアップ)に差し戻し、パーマリンクを更新します。

CONTACT

webサイト制作、デザインに関するご相談、御見積のご依頼など、弊社へのお問い合わせはこちら