サブディレクトリにインストールしたWordPressをルートドメインで動かす方法

はじめに

今回は、サブディレクトリにインストールしたWordPressをルートドメインで運用する方法のおさらいです。
WordPressをサブディレクトリにインストールするメリット・デメリットは別の記事で公開していきたいと思いますので、今回は作業手順の記録になります。

用語のおさらい

ルートドメインサブドメインサブディレクトリドキュメントルートルートディレクトリ

例えば「https://blog.ideasheep.com」というURLがあった場合、
ルートドメインとは、「https://blog.ideasheep.com」
サブドメインとは、「https://blog.ideasheep.com」
サブディレクトリとは、「https://blog.ideasheep.com/blog」
となります。

また、ドキュメントルート(ルートディレクトリ)とは、ルートドメインで公開される最上位のディレクトリになります。例えば、ドキュメントルートに「index.html」というファイルを置いた場合、https://blog.ideasheep.com/index.htmlにて表示されることになります。


今回の目的

今回やりたいことは、
・ルートドメイン「https://blog.ideasheep.com」でWordPressを運用する
・WordPressのインストール先として、ドキュメントルート直下のサブディレクトリにする

仮に、WordPressを「blog」というサブディレクトリにインストールすると、
通常は
 https://blog.ideasheep.com/blog/
となります。
これを

✕ https://blog.ideasheep.com/blog/
 ↓
○ https://blog.ideasheep.com/

と、インストールしたサブディレクトリの一階層上のドメイン直下に、インストールしたように見せかけて動かす手順を解説していきたいと思います。

いくつか方法がありますが、今回はデータベースに書き込まない方法で行いますので、「それ、やってみたかった!」という方はぜひチャレンジしてみてください。


必要なスキル

WordPressは、任意のサブディレクトリにインストール済みとします。
他に、下記の作業が必要となります。
・FTPでサーバへ接続
・サーバからファイルのダウンロード
・テキストエディタでファイルの修正
・修正したファイルをサーバへアップロード

使用ツール

FTPソフト(Filezilla)
テキストエディタ(秀丸)
※同等の機能があればどれでも良いのですが、今回使用したツールは(カッコ内)のものです。

手順

まず、WordPressをインストールしたサブディレクトリ名をメモしてください。
ここでは、ドメインを「ideasheep.com」、サブディレクトリを「blog」として説明していきます。

いくつかファイルを編集しますが、もともとサーバにあるファイル(オリジナルファイル)のバックアップは必ず持っておいてください。動作がおかしければ、そのファイルをもとに戻せば復旧できますので。


ステップ1:WordPressのインストールを確認

まずインストールしたWordPressの管理画面のTOPページとユーザーエンド側のTOPページが正常に見られることを確認します。


ステップ2:.htaccess、index.phpの編集

■手順1
/blog/.htaccess
/blog/index.php
をダウンロードします。
同時に、名前を変えてバックアップ保存しておきます。(名前は何でも構いません)

(例)
index.php → index.php_org
.htaccess → .htaccess_org

■手順2
index.phpをエディタで下記のように編集します。

(修正前)

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

 ↓

(修正後)

//require __DIR__ . '/wp-blog-header.php' );
require __DIR__ . '/blog/wp-blog-header.php' );//サブディレクトリ「blog」を付加

もともとあった記述は、念のため削除ではなくコメントアウト「//」してください。

<参考>

■手順3
ダウンロードして編集したindex.phpと、ダウンロードしただけの.htaccessを、ひとつ上の階層(ドキュメントルート)へアップロードします。
/.htaccess
/index.php


ステップ3:サイトのアドレスを変更

■手順1
/blog/wp-config.phpをダウンロードします。

■手順2
wp-config.phpをエディタで開き、下記3行を23行目辺りに下記を追加。

(追加後)

//WordPressアドレス・サイトアドレスの設定
define('WP_SITEURL', 'https://blog.ideasheep.com/blog'); //WordPressアドレス
define('WP_HOME', 'https://blog.ideasheep.com/'); //サイトアドレス

WP_SITEURL には、サブディレクトリ付きのアドレスを記述
WP_HOME には、ドメインルート(サブディレクトリは取る)を記述

■手順3
編集したファイルを同じ場所(/blog/wp-config.php)へ上書きアップロード。


ステップ4:確認

管理画面:http:// ドメインルート /wp-admin/
ユーザーエンド画面:http:// ドメインルート /

管理画面、ユーザーエンド画面が正常に表示できることを確認します。
また、管理画面の「設定」-「一般設定」のから、
・WordPress アドレス (URL)
・サイトアドレス (URL)
の2項目が修正できないようになっていれば完了です。

おつかれさまでした。


さいごに

ステップ3で行ったことは、
管理画面の「設定」-「一般設定」でも可能ですが、管理画面上から変更する際データベースを書き換えてしまいますので、万が一間違って入力してしまうと、管理画面にもユーザーエンド画面にもアクセスできなくなってしまいます。

そうなった場合、DBを直接操作してレコードを書き換えないと復旧できない大変手間のかかる作業となりますので、設定ファイル「wp-config.php」の中身を変更しアップロードする方法をおすすめします。

今回の方法で、もしうまく行かない場合は、修正したファイルを一旦元のファイルに戻してから、もう一度チャレンジしてみてください。データベースには手を加えていませんので、ファイルをもとに戻せば何度でも復旧可能です。