WordPressをサブディレクトリに移動する方法まとめ!URL変更あり、URL変更なしの2パターンを徹底解説。

2021-12-21
Wordpress

Wordpressをサブディレクトリに移動_004

WordPressをルートディレクトリからサブディレクトリに移動させる方法です。

サーバー上の「.htaccess」を使ってサイトのURLを変更せずにWordpressを移動する方法。および一般設定の「サイトアドレス(URL)」を変更してサイトのURLを変更しつつWordpressを移動する2パターンのやり方をまとめました。

サーバーのルートディレクトリをすっきりさせたい時などにご活用下さい。

動作確認済みですが、必ずバックアップを取ってから作業して下さい。

WordPress本体をサブディレクトリに移動する方法

この記事の内容はWordpressの公式サポートにもある内容です。

WordPressの一般設定からインストールディレクトリの変更方法が書かれたページに飛べますが、英語のページで分かりにくいのでこの記事で解説します。

ポイント

この記事でのサーバーのルートディレクトリとはドキュメントルート(public_html内など)を指しています。ルートという日本語がややこしいですが、ドメイン名のみでアクセスできる場所としてお考え下さい。

サーバーのルートディレクトリにインストールしたWordpressをサブディレクトリに移動する方法は大きく分けて以下の2つの方法があります。

  1. .htaccessを使う方法(URL変更なし)
  2. WordPressの設定にあるサイトアドレスを変更する方法(URL変更あり)

どちらの方法もWordpressのコアファイル一式をサブディレクトリに移動するものですが、サイトのURLの変更を伴うか、伴わないかの違いがあります。

少しややこしいので、作業の前にまずこの記事の作業内容を整理します。
まず想定するサイト構成は以下のような感じです。

サイトの構成

  • 現在のWordpressインストール先:ルートディレクトリ(public_html内)
  • サイトのトップページのURL:http://example.com
  • WordPressの移動先のサブディレクトリ名:wp

このようなサイトでルートディレクトリに既にインストールされているWordpressを新しく作った「wp」というサブディレクトリに移動したい場合です。

最終的には以下のような構成になります。

Wordpressをサブディレクトリに移動_001

サブディレクトリ化のイメージ

任意のサブディレクトリ(今回は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をサブディレクトリに移動_002

WordPress内の設定は変更しない

WordPressをサブディレクトリに移動後、.htaccessによって出力するURLを元々のURLと同じように書き換えることでWordpressを移動する感じですね。

基本的な流れは以下です。

  1. サーバーのルートディレクトリにサブディレクトリを作成する
  2. WordPressのコアファイル一式をサブディレクトリに移動する
  3. サーバーのルートディレクトリに.htaccessを新規作成する
  4. .htaccessにコードを追加する

比較的簡単な作業内容なので、サイトURLはそのままでWordpress本体をサーバーのルートディレクトリよりも下層のサブディレクトリに移動したい時に便利です。

移動作業の流れ

では早速やってみましょう!
FTPソフトやファイルマネージャーなど、サーバー上のファイルを編集できる環境でサーバーにアクセスします。

Wordpressをサブディレクトリに移動_003

ルートディレクトリ(public_html内)にサブディレクトリを作成

続いてWordpressの移動先であるサブディレクトリ(ここではwp)を作成します。

Wordpressをサブディレクトリに移動_004

サブディレクトリ(wp)内にWordpressファイルを一式移動

任意のサブディレクトリを作成したら、Wordpressファイル一式を作成したフォルダに移動しましょう。
(※サイトによって画像とファイル数が異なります。)

サイト運営歴が長いとルートに色々なファイルが作成されている可能性があります。
どのファイルを移動してよいのか分からない場合は、Wordpressを新規ダウンロードしてWordpressフォルダに元から入っているファイルを参考に移動しましょう。

外部リンク

WordPress関係のファイルをサブディレクトリに移動したら、サーバーのルートディレクトリ(public_html内など)に「.htaccess」というファイルを作成します。
(先ほど作成したサブディレクトリがある階層に.htaccessを作ります。)

Wordpressをサブディレクトリに移動_005

サーバールートに.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をサブディレクトリに移動する方法です。

Wordpressをサブディレクトリに移動_006

管理画面左メニュー>設定>一般

主に「http://example.com」から「http://example.com/wp」という風にサイトのURLにサブディレクトリ名も含めたい場合はコチラの方法となります。

少しややこしいのですが、この方法でも「Wordpressアドレス(URL)」のみを変更し、「サイトアドレス(URL)」はそのままにしておくことで、実際のサイトURLを変更せず「http://example.com」という形で引き続きサイト運営することも可能です。

手順ですが、まずは「Wordpressアドレス(URL)」のみを変更することでWordpressをサブディレクトリに移動し、最後に「サイトアドレス(URL)」を変更してサイトURLを「http://example.com/wp」という形にしていきます。

WordPressアドレス(URL)の変更方法

WordPressアドレス(URL)というのはWordpressがインストールされているフォルダへのパスを示すものです。
まずはこちらを変更しましょう。

以下の手順でWordpressをサブディレクトリに移動します。

  1. サブディレクトリ(wp)をルートに作成する。
  2. WordPressにログイン後、一般設定に移動する。
  3. WordPressアドレス(URL)を変更する。
  4. 変更を保存する。(エラーが出るが無視する)
  5. WordPress本体をサブディレクトリ(wp)に移動する。
  6. index.phpと.htaccessをルートにコピーする。
  7. index.phpのwp-blog-header.phpの読み込み先を変更する。
  8. 新しいURLで管理画面にログインする。
  9. パーマリンクの変更を行う。

以上の手順でWordPressアドレス(URL)を変更することが出来ます。
URLにサブディレクトリを含めたい場合は、上記作業の後「サイトアドレス(URL)」を変更すればサイトURLが「http://example.com/wp」という形になります。

ややこしいので画像付きで詳しくご説明します。

移動作業の流れ

では順番に作業していきましょう。

まずFTPソフトなどでサーバーにログインします。

Wordpressをサブディレクトリに移動_007

ルートディレクトリ(public_html内)にサブディレクトリを作成

続いてWordpressの移動先であるサブディレクトリ(ここではwp)を作成します。

サーバーのルートドキュメントに任意のサブディレクトリを作成したら、Wordpressアドレス(URL)を先に変更します。

Wordpressをサブディレクトリに移動_008

WordPressアドレス(URL)を変更する

いつも通り管理画面にログインし、

管理画面左メニュー > 設定 > 一般 > WordPressアドレス(URL)

に進み、WordPressアドレス(URL)のURLをサブディレクトリを含んだ新しいパスへと変更します。

参考

今回はルートドキュメントにwpというサブディレクトリを作成し、Wordpressをその中に移動するのでURLは「http://example.com/wp」となります。
※URLの最後に/を付けてしまわないように注意。

WordPressアドレス(URL)をサブディレクトリを含むURLに変更したら「変更を保存」をクリックします。

Wordpressをサブディレクトリに移動_009

変更保存後はエラーが出るが気にしない

この時はまだWordpress本体を移動していないので上記画像のようなエラーが出ますが、これから移動するので気にしないで下さい。

参考

WordPressを移動してから行う方が良さそうですが、移動に伴いログインURLも変更され、設定変更すらできないのでこの順番で行う必要があります。

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

それでは早速Wordpressをサブディレクトリに移動しましょう。

Wordpressをサブディレクトリに移動_010

サブディレクトリ(wp)内にWordpressファイルを一式移動

移動方法は1つめの方法の.htaccessを使う時と同様です。
先ほど作成したサブディレクトリ(ここではwp)内にWordpress一式を移動します。

Wordpressをサブディレクトリに移動_011

移動したファイルのうち「.htaccess」と「index.php」をコピーする

続いてサブディレクトリに移動したWordpressファイルの中から「.htaccess」と「index.php」を"コピー"します。

そして「.htaccess」と「index.php」を元々Wordpressがあった場所であるサーバーのドキュメントルート(public_html内など)にペーストします。
(※公式サイトのサポートにもありますが、移動ではなくコピーです。)

Wordpressをサブディレクトリに移動_012

ルートディレクトリ(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をサブディレクトリに移動_013

ルートドキュメントのindex.phpを編集した

こんな感じです。サブディレクトリ名を頭に追加するだけですね。
これでWordpressの移動および、Wordpressアドレス(URL)の変更完了です!

なお、設定が完了したらパーマリンクの更新も忘れずに行います。

パーマリンクの更新作業

Wordpressをサブディレクトリに移動_014

新しいログインURLで管理画面にログインする

WordPressの移動に伴い、ログイン画面のURLがサブディレクトリ名の入ったものに変更されていますので、新しいログインURLで管理画面にログインしましょう。

Wordpressをサブディレクトリに移動_015

Cookieエラーが出る場合は何度か試す

この時ログイン画面でCookieに関するエラーが出た時は、何度かログインを繰り返せばログインできます。

Wordpressをサブディレクトリに移動_016

管理画面左メニュー>設定>パーマリンク

無事にログイン出来たら、パーマリンク設定画面に進み「変更を保存」をクリックしてパーマリンクを更新して下さい。

ポイント

パーマリンク構造を変更していない場合も「変更を保存」を押して下さい。
(この作業で.htaccessの内容が自動的に最適なものに作り替えられます。)

URLの変更を伴わない場合はここで終了

以上の作業でWordpress本体をサブディレクトリに移動し、Wordpressアドレス(URL)を変更する作業が完了しました。

WordPressアドレス(URL)のみを変更した場合、URLは以下のような感じになります。

Wordpressをサブディレクトリに移動_017

トップページはhttp://example.comのまま

トップページはディレクトリ移動前と同じURLが使用できます。
(あくまでもWordpress本体の読み込み先の場所が変更されただけ。)

Wordpressをサブディレクトリに移動_018

管理画面のURLにはサブディレクトリ名が付く

一方、管理画面はサブディレクトリ名(wp)が付いたURLを使用します。
(Wordpressをサブディレクトリに移動したため。)

サイトのURLを変更しない場合(http://example.comで運営する)はここで作業終了です。サイトのURLにサブディレクトリ名を付けたい場合(http://example.com/wpで運営する)は以下の手順で「サイトアドレス(URL)」も変更します。

サイトアドレス(URL)の変更方法

サイトアドレス(URL)を変更すれば、サイトのURLにサブディレクトリ名を含めることが出来ます。

先述の方法でWordpressをサブディレクトリに移動していれば設定は簡単です。

Wordpressをサブディレクトリに移動_019

サイトアドレス(URL)にサブディレクトリ名を追加する

管理画面にログインし、

管理画面左メニュー > 設定 > 一般 > サイトアドレス(URL)

に進み、サイトアドレス(URL)にサブディレクトリ名を追加すればOK!

Wordpressをサブディレクトリに移動_020

パーマリンクの更新作業

変更を保存したら、パーマリンクを更新しましょう。

サイトアドレス(URL)にサブディレクトリ名を追加した時、URLは以下のような感じになります。

Wordpressをサブディレクトリに移動_021

トップページのURLに/wp/が付く

これでトップページのURLにもサブディレクトリ名が含まれるようになります。

Wordpressをサブディレクトリに移動_022

管理画面のURLにもサブディレクトリ名が含まれる

管理画面のURLは先ほど変更してますのでそのままサブディレクトリ名が付いたものとなります。

ポイント

この場合はサイト全体のURLが変更されるのでリダイレクト処理が必要になります。SEOにも影響するので注意しましょう。

WordPressの移動とURLの変更について

長くなったので最後に簡単に各項目をまとめます。

サイトのURLを変更せず、Wordpressをサブディレクトリに移動させる方法は以下。

  1. .htaccessを使う。
  2. WordPressアドレス(URL)のみを変更する。

WordPressをサブディレクトリに移動させ、更にサイトのURLにサブディレクトリ名を入れる方法は以下。

  • WordPressアドレス(URL)を変更後、サイトアドレス(URL)を変更する。

公式サイトによればどちらが推奨とかはないようです…

個人的にはURLを変更しない場合は.htaccessがお手軽。
URLを変更する場合はWordpressアドレス、およびサイトアドレスを変更する方法を使う感じなのかな?と思いました。

また本記事の逆パターンである「サブディレクトリ」→「ルートディレクトリ」への移動方法については別の記事でご案内しています。

ひとこと

今回はローカル環境でテストした時の画像と共にやり方をご紹介しましたが、伝わりましたでしょうか…

WordPressアドレスとサイトアドレス、実際に使用するサイトURLの関係が妙にややこしいですね。
そして作業内容に関してはサーバールートやらドキュメントルートやらpublic_htmlやらhtdocsやらが同じ意味なのでとってもややこしいw

普通にブログを運営していてWordpressをサブディレクトリに移動させたい!ということは殆どないと思いますので、どちらかというと業者の方向けの記事かも…

ではではこのへんで・w・

-Wordpress
-

ありがとうございました。
良かったらシェアしてネ・w・

© 2022 ソロ学