はじめに
この記事では、サブディレクトリにインストールしたWordPressのURLをドメイン直下として表示(ルートディレクトリにあるかのように表示)させる方法をご紹介します。
現状のURL | https://example.com/サブディレクトリ名/ |
理想のURL | https://example.com/ |
基礎知識
「ルートディレクトリ」とは?
ドメイン(example.com)直下にある、階層が一番高いディレクトリ(フォルダ)のことです。
- https://ルートディレクトリ/
ルートディレクトリへWordPressをインストールした場合、本記事の方法は不要です。
ただし、サブディレクトリにインストールする理由がいくつかあります(後述)。
「サブディレクトリ」とは?
ルートディレクトリの中に作成されたディレクトリ(フォルダ)のことです。
ルートディレクトリの中のディレクトリは、階層に限らずすべてサブディレクトリとなります。
- https://ルートディレクトリ/
- https://ルートディレクトリ/サブディレクトリ/
- https://ルートディレクトリ/サブディレクトリ/サブディレクトリ/
なぜ、ルートディレクトリではなくサブディレクトリにインストールする必要があるのか?
サブディレクトリにインストールする理由としては、主に下記2つがあります。
【理由1】メンテナンスのしやすさ
例えば、1つのドメインで複数のサイトを運用する場合、サブディレクトリで区切ってWordPressをインストールすることで、1つのドメインで複数のサイトを運営できます。
WordPressファイルがドメイン直下にあると、後々の管理がしづらくなることも多くあり、サブディレクトリにインストールすることでサーバー内のファイルがスッキリします。
【理由2】セキュリティ対策
ドメイン直下にWordPressのコアファイルが存在しているのはセキュリティリスクが高まります。
というのも、WordPressを攻撃する側は、WordPressのコアファイルがルートディレクトリにインストールされているものと想定していることが多いとのこと。
そのため、WordPressをサブディレクトリにインストールし、かつディレクトリ名もWordPressと関連性が薄い名前などにすると、攻撃を受けにくく安全性が高くなります。
サイトURLをドメイン直下にする前に。。。
ドメイン直下に変更をする前に、 サブディレクトリにWordPressのファイル一式がアップされており、インストール済みである必要があります。
インストールがまだ済んでいない場合は、先にインストールが必要です。
WordPressをインストールする方法は、下記の記事で解説しています。
なお、インストールするサブディレクトリ名は、セキュリティ対策も兼ねて推測されづらい名前にしましょう。
例えば、「wp」「wordpress」「cms」といった名前は避けたほうが無難です。
サブディレクトリにインストールしたWordPressをドメイン直下にする手順
手順としては3つになります。
- WordPressの管理画面の設定にてURLを変更するWordPressの管理画面の設定にてURLを変更する
- 「index.php」ファイルと「.htaccess」ファイルの複製と編集
- サイトにアクセスして確認
以降、詳しく解説していきます。
【手順1】WordPress管理画面でURL設定を変更する
①管理画面にログイン
WordPressの管理画面にログインしましょう。
なお、WordPressのログインページには、サブディレクトリへインストールしている場合、下記のようなURLでアクセスすることができます。
https://サイトドメイン名/wordpressをインストールしているディレクトリ名/wp-login.php
ログイン後、管理画面 > 設定 > 一般設定をクリックしてください。
下記のような画面が表示されます。

「WordPressアドレス(URL)」と「サイトアドレス(URL)」が一緒の文字列になっています。
※この記事では、サブディレクトリ名を「wpw」としています。
②サイトアドレス(URL)の変更
ルートディレクトリのようにするには、下記画像のように「サイトアドレス(URL)」にある「wpw」を削除し、「http://example.com」に変更します。

なお、「WordPressアドレス(URL)」は変更しないでください。
管理画面にアクセスできなくなってしまいます。
最後に忘れずに「変更を保存」をクリックしましょう。
管理画面の設定は以上になります。
【手順2】ファイルの複製と編集
次に、FTPソフトにてファイルの複製や編集の作業が必要となります。
サーバー上のWordPressがインストールされているフォルダ(サブディレクトリ)へアクセスしましょう。
① 「index.php」と「.htaccess」ファイルの複製
まず、サーバーの「http://example.com/任意のディレクトリ名/〜」(ここではwpw)の中に入っている「index.php」と「.htaccess」をコピーし、ルートディレクトリに複製します。
「移動」ではなく「複製(コピー)」となるのでご注意を!

② index.phpファイルの編集
次に、コピーしてきたindex.phpを開きます。下記のような記述になっています。
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define( 'WP_USE_THEMES', true );
/** Loads the WordPress Environment and Template */
require dirname( __FILE__ ) . '/wp-blog-header.php';
上記の一番下の行を下記のように修正します。
【変更前】
require __DIR__ . '/wp-blog-header.php';
【変更後】
require __DIR__ . '/wpw/wp-blog-header.php';
今回の例では、「/wp-blog-header.php」を「/wpw/wp-blog-header.php」に変更しています。
「wpw」の部分はインストールしたサブディレクトリと同じ名前にしてください。
最後に忘れず保存にしましょう。
③ .htaccessファイルの編集
.htaccessファイルについても同様に修正します。
.htaccessファイルを開くと下記のような記述になっています。
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wpw/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wpw/index.php [L]
</IfModule>
# END WordPress
こちらを下記のように8行目と12行目を修正します。
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
【手順3】サイトにアクセスして確認
Webサイトにアクセスし、サイトの表示などがおかしくなっていないか確認しましょう。
今回の記事では、下記のようなURLになります。
画面名 | URL |
---|---|
ログイン画面 | https://example.com/wpw/wp-login.php |
管理画面 | https://example.com/wpw/wp-admin/ |
Webサイト | https://example.com/ |
サブディレクトリ名が無い状態でサイトにアクセスできれば成功です!