Wordpressをルートディレクトリからサブディレクトリに移動させる方法です。
サーバー上の「.htaccess」を使ってサイトのURLを変更せずにWordpressを移動する方法。および一般設定の「サイトアドレス(URL)」を変更してサイトのURLを変更しつつWordpressを移動する2パターンのやり方をまとめました。
サーバーのルートディレクトリをすっきりさせたい時などにご活用下さい。
動作確認済みですが、必ずバックアップを取ってから作業して下さい。
この記事の目次
WordPress本体をサブディレクトリに移動する方法
この記事の内容はWordpressの公式サポートにもある内容です。
Wordpressの一般設定からインストールディレクトリの変更方法が書かれたページに飛べますが、英語のページで分かりにくいのでこの記事で解説します。
ポイント
この記事でのサーバーのルートディレクトリとはドキュメントルート(public_html内など)を指しています。ルートという日本語がややこしいですが、ドメイン名のみでアクセスできる場所としてお考え下さい。
サーバーのルートディレクトリにインストールしたWordpressをサブディレクトリに移動する方法は大きく分けて以下の2つの方法があります。
- .htaccessを使う方法(URL変更なし)
- Wordpressの設定にあるサイトアドレスを変更する方法(URL変更あり)
どちらの方法もWordpressのコアファイル一式をサブディレクトリに移動するものですが、サイトのURLの変更を伴うか、伴わないかの違いがあります。
少しややこしいので、作業の前にまずこの記事の作業内容を整理します。
まず想定するサイト構成は以下のような感じです。
サイトの構成
- 現在のWordpressインストール先:ルートディレクトリ(public_html内)
- サイトのトップページのURL:http://example.com
- Wordpressの移動先のサブディレクトリ名:wp
このようなサイトでルートディレクトリに既にインストールされているWordpressを新しく作った「wp」というサブディレクトリに移動したい場合です。
最終的には以下のような構成になります。
任意のサブディレクトリ(今回はwp)にWordpressを移動するわけですが、
URLを変更しない場合は今まで通り「http://example.com」でサイトが閲覧でき、
URLを変更した場合は「http://example.com/wp」がサイトのURLになる感じです。
これ以上は読み進めていただいた方が分かりやすいと思いますので、順番にそれぞれのやり方でWordpressをサブディレクトリに移動する方法を見ていきましょう・w・
.htaccessを使ってWPをサブディレクトリに移動する
まずは「.htaccess」を使ってWordpressをサブディレクトリに移動する方法です。
サイトURLの変更を伴わない方法で「http://example.com」のようにそのままのURLでサイトを運営することが出来ます。
また、この方法ではWordpress管理画面から設定できる「Wordpressアドレス(URL)」や「サイトアドレス(URL)」を変更する必要がありません。
Wordpressをサブディレクトリに移動後、.htaccessによって出力するURLを元々のURLと同じように書き換えることでWordpressを移動する感じですね。
基本的な流れは以下です。
- サーバーのルートディレクトリにサブディレクトリを作成する
- Wordpressのコアファイル一式をサブディレクトリに移動する
- サーバーのルートディレクトリに.htaccessを新規作成する
- .htaccessにコードを追加する
比較的簡単な作業内容なので、サイトURLはそのままでWordpress本体をサーバーのルートディレクトリよりも下層のサブディレクトリに移動したい時に便利です。
移動作業の流れ
では早速やってみましょう!
FTPソフトやファイルマネージャーなど、サーバー上のファイルを編集できる環境でサーバーにアクセスします。
続いてWordpressの移動先であるサブディレクトリ(ここではwp)を作成します。
任意のサブディレクトリを作成したら、Wordpressファイル一式を作成したフォルダに移動しましょう。
(※サイトによって画像とファイル数が異なります。)
サイト運営歴が長いとルートに色々なファイルが作成されている可能性があります。
どのファイルを移動してよいのか分からない場合は、Wordpressを新規ダウンロードしてWordpressフォルダに元から入っているファイルを参考に移動しましょう。
外部リンク
【Wordpress公式DL先】
ダウンロード | WordPress.org 日本語
Wordpress関係のファイルをサブディレクトリに移動したら、サーバーのルートディレクトリ(public_html内など)に「.htaccess」というファイルを作成します。
(先ほど作成したサブディレクトリがある階層に.htaccessを作ります。)
そして作成した「.htaccess」に以下のコードを書き込みます。(コピペOK)
念のため他のコードが混じらないようにして下さい。
.htaccess
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]
次にコードの内容を自サイトに合ったものに変更します。
具体的にはコードの中の「example.com」の部分を自サイトのドメイン名に変更。
「my_subdir」の部分をサブディレクトリ名(ここではwp)に書き換えます。
ポイント
「example.com」は2か所、「my_subdir」は3か所書き換える。
前後の?や$、/などを誤って削除しないように注意!
これでOK!
自サイトにアクセスし、いつものURLで問題なく閲覧できるか確認して終了です。
サイトURLの変更でWPをサブディレクトリに移動する
続いてWordpressの管理画面から設定できる「Wordpressアドレス(URL)」や「サイトアドレス(URL)」を変更してWordpressをサブディレクトリに移動する方法です。
主に「http://example.com」から「http://example.com/wp」という風にサイトのURLにサブディレクトリ名も含めたい場合はコチラの方法となります。
少しややこしいのですが、この方法でも「Wordpressアドレス(URL)」のみを変更し、「サイトアドレス(URL)」はそのままにしておくことで、実際のサイトURLを変更せず「http://example.com」という形で引き続きサイト運営することも可能です。
関連記事
両者の違いについては別記事に詳しく書きました。
WordPressアドレスとサイトアドレスの違いとは?両者の使い方と違いについて詳しくまとめました!
手順ですが、まずは「Wordpressアドレス(URL)」のみを変更することでWordpressをサブディレクトリに移動し、最後に「サイトアドレス(URL)」を変更してサイトURLを「http://example.com/wp」という形にしていきます。
WordPressアドレス(URL)の変更方法
Wordpressアドレス(URL)というのはWordpressがインストールされているフォルダへのパスを示すものです。
まずはこちらを変更しましょう。
以下の手順でWordpressをサブディレクトリに移動します。
- サブディレクトリ(wp)をルートに作成する。
- Wordpressにログイン後、一般設定に移動する。
- Wordpressアドレス(URL)を変更する。
- 変更を保存する。(エラーが出るが無視する)
- Wordpress本体をサブディレクトリ(wp)に移動する。
- index.phpと.htaccessをルートにコピーする。
- index.phpのwp-blog-header.phpの読み込み先を変更する。
- 新しいURLで管理画面にログインする。
- パーマリンクの変更を行う。
以上の手順でWordPressアドレス(URL)を変更することが出来ます。
URLにサブディレクトリを含めたい場合は、上記作業の後「サイトアドレス(URL)」を変更すればサイトURLが「http://example.com/wp」という形になります。
ややこしいので画像付きで詳しくご説明します。
移動作業の流れ
では順番に作業していきましょう。
まずFTPソフトなどでサーバーにログインします。
続いてWordpressの移動先であるサブディレクトリ(ここではwp)を作成します。
サーバーのルートドキュメントに任意のサブディレクトリを作成したら、Wordpressアドレス(URL)を先に変更します。
いつも通り管理画面にログインし、
管理画面左メニュー > 設定 > 一般 > Wordpressアドレス(URL)
に進み、Wordpressアドレス(URL)のURLをサブディレクトリを含んだ新しいパスへと変更します。
参考
今回はルートドキュメントにwpというサブディレクトリを作成し、Wordpressをその中に移動するのでURLは「http://example.com/wp」となります。
※URLの最後に/を付けてしまわないように注意。
Wordpressアドレス(URL)をサブディレクトリを含むURLに変更したら「変更を保存」をクリックします。
この時はまだWordpress本体を移動していないので上記画像のようなエラーが出ますが、これから移動するので気にしないで下さい。
参考
Wordpressを移動してから行う方が良さそうですが、移動に伴いログインURLも変更され、設定変更すらできないのでこの順番で行う必要があります。
Wordpressをサブディレクトリに移動する
それでは早速Wordpressをサブディレクトリに移動しましょう。
移動方法は1つめの方法の.htaccessを使う時と同様です。
先ほど作成したサブディレクトリ(ここではwp)内にWordpress一式を移動します。
続いてサブディレクトリに移動したWordpressファイルの中から「.htaccess」と「index.php」を"コピー"します。
そして「.htaccess」と「index.php」を元々Wordpressがあった場所であるサーバーのドキュメントルート(public_html内など)にペーストします。
(※公式サイトのサポートにもありますが、移動ではなくコピーです。)
この時サーバーのルート(public_html内など)には作成したサブディレクトリ(wp)と「.htaccess」及び「index.php」のファイルが存在することになります。
ここで一旦ファイル構成を整理しましょう。
- サーバールート(public_html)内:「wp」と「.htaccess」と「index.php」の3ファイルと元々存在していたファイル。
- サブディレクトリ(wp)内:ルートから移動したWordpressファイル一式。
- .htaccess:「wp」とサーバールートの2つに同じものが存在。
- index.php:「wp」とサーバールートの2つに同じものが存在。
こんな感じの構成です。文章で伝えるのが難しい・w・
ルートにコピーしたindex.phpを編集する
続いてサブディレクトリからコピーしてルートドキュメント(public_html)にペーストして設置した「index.php」を編集します。
index.phpを開くと以下のようなコードがありますので、コードの最終行にあるrequire __DIR__ . '/wp-blog-header.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 __DIR__ . '/wp-blog-header.php';
wp-blog-header.phpの読み込み先にサブディレクトリを追加するだけでOKです。
今回の場合はルートドキュメントにwpというサブディレクトリを作り、その中にWordpress一式を入れているので以下のようになります。
- 編集前:
require __DIR__ . '/wp-blog-header.php'; - 編集後:
require __DIR__ . '/wp/wp-blog-header.php';
こんな感じです。サブディレクトリ名を頭に追加するだけですね。
これでWordpressの移動および、Wordpressアドレス(URL)の変更完了です!
なお、設定が完了したらパーマリンクの更新も忘れずに行います。
パーマリンクの更新作業
Wordpressの移動に伴い、ログイン画面のURLがサブディレクトリ名の入ったものに変更されていますので、新しいログインURLで管理画面にログインしましょう。
この時ログイン画面でCookieに関するエラーが出た時は、何度かログインを繰り返せばログインできます。
無事にログイン出来たら、パーマリンク設定画面に進み「変更を保存」をクリックしてパーマリンクを更新して下さい。
ポイント
パーマリンク構造を変更していない場合も「変更を保存」を押して下さい。
(この作業で.htaccessの内容が自動的に最適なものに作り替えられます。)
URLの変更を伴わない場合はここで終了
以上の作業でWordpress本体をサブディレクトリに移動し、Wordpressアドレス(URL)を変更する作業が完了しました。
Wordpressアドレス(URL)のみを変更した場合、URLは以下のような感じになります。
トップページはディレクトリ移動前と同じURLが使用できます。
(あくまでもWordpress本体の読み込み先の場所が変更されただけ。)
一方、管理画面はサブディレクトリ名(wp)が付いたURLを使用します。
(Wordpressをサブディレクトリに移動したため。)
サイトのURLを変更しない場合(http://example.comで運営する)はここで作業終了です。サイトのURLにサブディレクトリ名を付けたい場合(http://example.com/wpで運営する)は以下の手順で「サイトアドレス(URL)」も変更します。
サイトアドレス(URL)の変更方法
サイトアドレス(URL)を変更すれば、サイトのURLにサブディレクトリ名を含めることが出来ます。
先述の方法でWordpressをサブディレクトリに移動していれば設定は簡単です。
管理画面にログインし、
管理画面左メニュー > 設定 > 一般 > サイトアドレス(URL)
に進み、サイトアドレス(URL)にサブディレクトリ名を追加すればOK!
変更を保存したら、パーマリンクを更新しましょう。
サイトアドレス(URL)にサブディレクトリ名を追加した時、URLは以下のような感じになります。
これでトップページのURLにもサブディレクトリ名が含まれるようになります。
管理画面のURLは先ほど変更してますのでそのままサブディレクトリ名が付いたものとなります。
ポイント
この場合はサイト全体のURLが変更されるのでリダイレクト処理が必要になります。SEOにも影響するので注意しましょう。
WordPressの移動とURLの変更について
長くなったので最後に簡単に各項目をまとめます。
サイトのURLを変更せず、Wordpressをサブディレクトリに移動させる方法は以下。
- .htaccessを使う。
- Wordpressアドレス(URL)のみを変更する。
Wordpressをサブディレクトリに移動させ、更にサイトのURLにサブディレクトリ名を入れる方法は以下。
- Wordpressアドレス(URL)を変更後、サイトアドレス(URL)を変更する。
公式サイトによればどちらが推奨とかはないようです…
個人的にはURLを変更しない場合は.htaccessがお手軽。
URLを変更する場合はWordpressアドレス、およびサイトアドレスを変更する方法を使う感じなのかな?と思いました。
また本記事の逆パターンである「サブディレクトリ」→「ルートディレクトリ」への移動方法については別の記事でご案内しています。
今回はローカル環境でテストした時の画像と共にやり方をご紹介しましたが、伝わりましたでしょうか…
まとめ
Wordpressアドレスとサイトアドレス、実際に使用するサイトURLの関係が妙にややこしいですね。
そして作業内容に関してはサーバールートやらドキュメントルートやらpublic_htmlやらhtdocsやらが同じ意味なのでとってもややこしいw
普通にブログを運営していてWordpressをサブディレクトリに移動させたい!ということは殆どないと思いますので、どちらかというと業者の方向けの記事かも…
ではではこのへんで・w・























