WordPressをhttps://example.com/wordpress/のようなサブディレクトリにインストールしたものの、閲覧者にはhttps://example.com/で表示したいことがあります。
この設定では、WordPress本体のファイルをサブディレクトリに置いたまま、サイトの公開URLだけをドメイン直下にできます。この記事では、Apache系サーバーで.htaccessを利用している一般的な環境を例に、設定手順とつまずきやすいポイントを解説します。
もくじ
この記事で実現する構成
| 項目 | 設定例 |
|---|---|
| WordPress本体の場所 | https://example.com/wordpress/ |
| サイトを表示するURL | https://example.com/ |
| 管理画面 | https://example.com/wordpress/wp-admin/ |
ここではサブディレクトリ名をwordpressとしています。実際の環境がwpやcmsの場合は、記事内のwordpressをその名前に読み替えてください。

作業前に必ず確認すること
URLとファイルの場所を同時に変更するため、手順を途中で止めると一時的にサイトや管理画面へアクセスできなくなる場合があります。作業前に次の準備を行ってください。
- WordPressのファイルとデータベースをバックアップする
- FTP/SFTPまたはサーバーのファイルマネージャーを使えるようにする
.htaccessなどの隠しファイルを表示できるようにする- 現在の「WordPressアドレス」と「サイトアドレス」を控える
- キャッシュプラグインやサーバーキャッシュの削除方法を確認する
- アクセスの少ない時間帯に作業する
ルートディレクトリに別サイトのindex.phpや.htaccessがある場合、上書きするとそのサイトが動かなくなる可能性があります。既存ファイルは必ずダウンロードし、名前を変えてバックアップしてください。
サブディレクトリのWordPressをドメイン直下で表示する手順
1. 「設定 → 一般」を開く
WordPressの管理画面へログインし、「設定 → 一般」を開きます。URLに関する次の2項目を確認してください。
- WordPress アドレス(URL):WordPress本体が置かれている場所
- サイトアドレス(URL):閲覧者に表示するサイトのURL
2. サイトアドレスだけをドメイン直下へ変更する
次のように設定します。
| 設定項目 | 入力するURL |
|---|---|
| WordPress アドレス(URL) | https://example.com/wordpress |
| サイトアドレス(URL) | https://example.com |
WordPress アドレスからサブディレクトリ名を削除しないでください。こちらはWordPress本体の実際の場所を示すため、そのまま残します。
変更を保存すると、一時的にサイトが正しく表示されなくなる場合があります。続けてファイルの設定を行います。
3. index.phpと.htaccessをルートへコピーする
FTP/SFTPまたはサーバーのファイルマネージャーで、WordPressをインストールしたサブディレクトリを開きます。そこにある次の2ファイルを、公開ルートへコピーします。
index.php.htaccess
たとえばWordPressがpublic_html/wordpress/にある場合は、2ファイルをpublic_html/へコピーします。サブディレクトリ側のファイルは削除せず、そのまま残してください。
.htaccessは隠しファイルです。表示されない場合は、FileZillaなら「サーバー → 隠しファイルの強制表示」を有効にします。パーマリンクを一度も設定していないサイトでは、.htaccessがまだ作成されていないこともあります。
4. ルート側のindex.phpを編集する
ルートへコピーしたindex.phpをテキストエディターで開きます。末尾付近にあるwp-blog-header.phpを読み込む行を変更します。
変更前は、同じディレクトリにwp-blog-header.phpがある前提になっています。
require dirname( __FILE__ ) . '/wp-blog-header.php';
サブディレクトリ名をパスへ追加します。今回の例ではwordpressです。
require dirname( __FILE__ ) . '/wordpress/wp-blog-header.php';
新しいWordPressでは__DIR__が使われている場合もあります。その場合も、同様にサブディレクトリ名を追加します。
require __DIR__ . '/wordpress/wp-blog-header.php';
編集するのはルートへコピーしたindex.phpです。サブディレクトリ内のindex.phpを変更しないよう注意してください。
5. パーマリンク設定を保存する
https://example.com/wordpress/wp-admin/から管理画面へログインし、「設定 → パーマリンク」を開きます。設定内容を変えなくても、そのまま「変更を保存」をクリックします。
これにより、現在のURL構成に合わせたリライトルールが再生成されます。WordPressが.htaccessへ書き込めない場合は、管理画面に表示されるルールをルート側の.htaccessへ手動で反映します。
6. 表示と管理画面を確認する
最後に、次のURLと機能を確認します。
https://example.com/でトップページが表示される- 投稿・固定ページのURLから
/wordpress/が消えている https://example.com/wordpress/wp-admin/へログインできる- CSS、JavaScript、画像が読み込まれる
- メニュー、検索、問い合わせフォームが動作する
- 管理画面の「サイトを表示」がドメイン直下を開く
設定項目を変更できない場合
「WordPress アドレス」や「サイトアドレス」がグレーアウトしている場合、wp-config.phpでURLが固定されている可能性があります。
define( 'WP_SITEURL', 'https://example.com/wordpress' );
define( 'WP_HOME', 'https://example.com' );
WP_SITEURLがWordPress本体の場所、WP_HOMEが閲覧者に表示するサイトURLです。すでに定義がある場合は重複して追加せず、既存の値を確認してください。誤ると管理画面へアクセスできなくなるため、編集前にwp-config.phpをバックアップします。
うまく表示されないときの確認ポイント
トップページが真っ白・500エラーになる
- ルート側の
index.phpに指定したディレクトリ名を確認する wp-blog-header.phpが実際にその場所にあるか確認する- 引用符やスラッシュを消していないか確認する
- ルート側の既存
.htaccessと競合していないか確認する
下層ページだけ404になる
管理画面の「設定 → パーマリンク」を開き、「変更を保存」をクリックします。それでも直らない場合は、ルート側の.htaccessが存在するか、WordPressが表示したリライトルールと一致するかを確認してください。
CSSや画像だけ読み込まれない
ブラウザ、キャッシュプラグイン、サーバー、CDNのキャッシュを削除します。テーマ内でURLを直接記述している場合は、古いURLが残っていないか確認してください。ただし、データベース内のURLを単純な文字列置換で変更すると、シリアライズされたデータを壊すことがあります。必要な場合は対応ツールやWP-CLIを使用します。
管理画面へ入れなくなった
管理画面のURLはドメイン直下ではなく、通常はhttps://example.com/wordpress/wp-admin/のままです。URL設定を誤った場合は、バックアップしたwp-config.phpやデータベースからhomeとsiteurlの値を戻します。
Nginx・IISでは手順が異なる
この記事は、Apache系サーバーで.htaccessを利用する構成を中心に説明しています。Nginxではサーバーブロック、Windows IISではweb.configの設定が必要です。IISの場合、WordPress公式手順ではweb.configをコピーではなくルートへ移動するよう案内されています。
利用中のWebサーバーが分からない場合や、ルートに別のアプリケーションがある場合は、作業前にレンタルサーバーのサポートへ確認してください。
まとめ
サブディレクトリにインストールしたWordPressは、本体ファイルを移動しなくてもドメイン直下で表示できます。重要なのは、2つのURL設定を区別し、index.phpと.htaccessを「移動」ではなく「コピー」することです。
- サイトアドレスをドメイン直下へ変更する
index.phpと.htaccessをルートへコピーする- ルート側の
index.phpにサブディレクトリ名を追加する - パーマリンク設定を保存する
- 表示、管理画面、フォームなどを確認する
URL設定を伴う作業は、バックアップと復旧手段を用意してから行いましょう。

