サイト&ブログの作り方

サブディレクトリのWordPressをドメイン直下で表示する方法

2021年8月22日

  1. HOME >
  2. コラム >
  3. サイト&ブログの作り方 >

サブディレクトリのWordPressをドメイン直下で表示する方法

2021年8月22日

とてもざっくり簡単に言うと、サーバーのサブフォルダにインストールしたWordPress(ワードプレス)を、ドメインのみ(ルートディレクトリ)のURLで表示させる方法です。
当サイト『あとりえ極星堂』でおこなった手順を紹介します。

わたしが使っているのはエックスサーバーですが、ほかのサーバーでもおおむね似た流れになると思います。

あると便利なのは、サーバーのファイルをダウンロードしたり、サーバーにファイルをアップロードできる「FTPソフト」と、文字コードを指定して保存できる「テキストエディタ」です。
わたしの場合、FTPソフトは『FFFTP』、テキストエディタは『TeraPad』を使っています。

FTPソフトはなんでもいいと思いますが、テキストエディタは「文字コード」を指定できるものにしてください。
Windowsに付属のメモ帳は文字コードを指定できないので、この作業には向いていません。
この機会に『TeraPad』ダウンロードおすすめ!

作業のおおまかな流れは以下にある目次のとおりです。

WordPressの設定で、公開アドレスを変更する

WordPressアドレス(URL)

『WordPressアドレス(URL)』とは、WordPressをインストールしている場所のアドレスのこと。

WordPress管理画面の【設定】>>【一般】から、【wordpressアドレス(URL)】を設定できます。
通常は、レンタルサーバーサービスの簡単インストールを使った場合などはとくに、正しいURLがすでに入っていると思います。
その場合はいじらなくてOKです。

例:https://www.aksd.net/hogehoge

サイトアドレス(URL)

『サイトアドレス(URL)』とは、公開するアドレスのこと。
人さまに「うちのブログ見てや~^^」と言うときには、このアドレスを教えます。

WordPress管理画面の【設定】>>【一般】から、【サイトアドレス(URL)】に、設定したいアドレスを入力します。
今回は「サブフォルダ(サブディレクトリ)にインストールしたWordPressを、ドメイン直下(ルートディレクトリ)で表示する方法」ですから、取得済みの独自ドメインを入力することになるはずです。

例:https://www.aksd.net
※うしろにスラッシュ(/)がつかないのがポイント!
NG例:https://www.aksd.net/

WordPressのindex.phpの置いてある場所と記述を変更する

まずは、サーバーからindex.phpをダウンロードする

FTPソフトでサーバーの中身にアクセスします。
フォルダやファイルがずらずら~っとありますがびっくりしないでね~。

エックスサーバーの場合だと、
【独自ドメイン(例:aksd.net)】>>【public_html】
で、ドメイン直下に入ることができます。
ウェブサイトのトップページは、ここにある「index.html」や「index.php」を表示しています。

さて、WordPressの「index.php」を探しにいきましょう。

ドメイン直下のルートディレクトリまで来たら次は、
【WordPressをインストールしたサブフォルダ(サブディレクトリ)(例:hogehoge)】>>【index.php】
です。
はっけ~~ん☆

この「index.php」を、FTPソフトでパソコン内にダウンロードします。
『FFFTP』の場合は、サーバー側からパソコン側にファイルをドラッグするとダウンロードできます。

ダウンロードした「index.php」を置いておく場所はどこでもいいです。
ご自身の作業しやすい場所、わかりやすい場所に置いておいてください。
わたしは「極星堂wp改造」なるフォルダを作り、それ系のファイルはそこに全部突っ込んでいます!

ダウンロードした「index.php」の記述をテキストエディタで一部変更する

万が一どこかの変更を間違ってしまったときの復旧用に、この「index.php」はいちおうコピーを取っておいてください。
いわゆるバックアップです。
めんどくさいけどお守り代わりに!

さあ、変更する用のindex.phpを、文字コード指定保存できるテキストエディタで開きましょう~。

変更するのは最後の行です。

変更前⇒require __DIR__ . '/wp-blog-header.php';

↑これを、このようにします↓↓↓

変更後⇒require( dirname( __FILE__ ) . '/WordPressをインストールしているフォルダ名/wp-blog-header.php' );
例:require( dirname( __FILE__ ) . '/hogehoge/wp-blog-header.php' );

保存するときに、文字コードを「UTF-8N(※TeraPadの場合)」に「文字/改行コード指定保存」してください。
TeraPadの場合、【ファイル】>>【文字/改行コード指定保存】でいけます。

目的は、文字コードを「ボムなしのUTF-8で保存すること」です。
TeraPad以外のテキストエディタの場合も、「UTF-8(ボムなし)」でindex.phpを上書き保存してください。

記述を変更した「index.php」を、ドメイン直下(ルートディレクトリ)にアップロードする

記述を変更した「index.php」をアップロードする場所が、ダウンロードしてきた場所とは違うので要注意です。

今回は、ドメイン直下(ルートディレクトリ)にアップロードします。

ドメイン直下(ルートディレクトリ)への行き方は、 エックスサーバーの場合だと、
【独自ドメイン(例:aksd.net)】>>【public_html】
です。

ドメイン直下(ルートディレクトリ)にもともと入っていた「index.html」を消去する

エックスサーバーの場合、ドメイン直下(ルートディレクトリ)に初めから「index.html」が用意されています。

これを削除します。
「index.html」と「index.php」が同時に存在する場合、サーバーは「index.html」を優先して表示させるという法則があります。
「index.php」をアップロードしても「index.html」が存在していると、それが邪魔をして「index.php」を表示させることができないんですね~。

削除はFTPソフトでおこないます。

FFFTPの場合、「index.html」にカーソルを持っていて右クリック→削除、でOKです!

WordPressにある.htaccessの記述を、ドメイン直下(ルートディレクトリ)に移動させる

おおまかな進み方は「index.php」のときと同じです。

FTPソフトで.htaccessのファイルをダウンロード
↓↓↓
テキストエディタで編集する
↓↓↓
FTPソフトでアップロードする、
となります。
ただ、「テキストエディタで.htaccessを編集してアップロードする」部分に要注意です。

なぜなら、レンタルサーバーによってはドメイン直下(ルートディレクトリ)に初めから.htaccessが入っていることがあるからです。
この.htaccessに記述があったりするんです。
.htaccessにはサイトを正常に表示させるための命令が書かれていますから、その内容は正確に残すことが必要です。

…………どうでもいいことですが、「.htaccess」は「ドット エイチティー アクセス」と読みます。
これで万が一、口頭で誰かに説明することになっても大丈夫!(笑)

WordPressの.htaccessをダウンロードする

「index.php」のときと同じように、FTPソフトでWordPressの.htaccessファイルをダウンロードしてきます。

ダウンロードすべき.htaccessファイルのありかは、
【ドメイン直下のルートディレクトリ】>>【WordPressをインストールしたサブフォルダ(サブディレクトリ)(例:hogehoge)】
です。

ダウンロードしたあとは、変更する前の.htaccessファイルを念のためコピーしておきましょう。
バックアップです、バックアップ。
お守り、お守り!

ダウンロードしてきた.htaccessの記述を一部変更する

.htaccessの最後のほうにある以下の記述から一部を変更します。

☆変更前☆
RewriteBase /hogehoge(※WordPressをインストールしているフォルダ名)/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /hogehoge(※WordPressをインストールしたフォルダ名)/index.php [L]

変更するとこんな感じ↓↓↓

☆変更後☆
RewriteBase /hogehoge/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

何がどうなったのか??
最後の行から「WordPressをインストールしたフォルダ名」を削除しているんですね。
文字コードを「UTF-8N」または「UTF-8(ボムなし)」で保存するのを忘れないでください~。

記述を変更した.htaccessをサーバーにアップロードする

FTPソフトを使い、いま記述を変更した.htaccessをサーバーにアップロードします。
場所はドメイン直下(ルートディレクトリ)です。

ただし!!

以下の場合は要注意です。

  • ドメイン直下(ルートディレクトリ)に初めから.htaccessが入っている場合
  • 以前にご自身で設置した.htaccessがある場合

サイトを正常に表示するために書いてあることが消えてしまってはたいへんですから!

※注意!!※ドメイン直下(ルートディレクトリ)にデフォルトで入っている.htaccessに記述があるときは?

たとえばエックスサーバーの場合、ドメイン直下(ルートディレクトリ)に初めから入っている.htaccessに記述があります。

SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_StaticMode

これを消すのはよくないので、この記述のあとにWordPressの.htaccessの内容をコピーしてアップロードすることになります。

コピーするときに注意していただきたいのは、最後に改行を入れること、です。
.htaccessは最後に改行を入れないと正常に動作しません。

最後に改行を入れているのを実際にテキストエディタで見るとこんな感じです↓↓↓
わかりづらいですが、末尾に改行が入っています。

.htaccessをTeraPadで開いたところ
TeraPadの場合です。
末尾の[EOF]は「End Of File」の略で、「ここでこのデータは終わり」を意味します。

正常に表示されるか確認する

ひとまず作業は完了です。
WordPressがちゃんと正常に動くのか確認してみましょう。

とくに確認したいことは、ふたつあります。

ひとつめ。WordPressを公開・表示したいアドレス(URL)にアクセスしてみる

WordPressを公開・表示したいアドレス(URL)にアクセスしてみましょう。
正常に表示されていれば大成功です!
お疲れさまでした!

ふたつめ。記事のプレビュー機能が正常に動くか確認する

記事のプレビュー機能が正常に動くか確認してみましょう。

無事に表示されていればノープロブレム!
正真正銘、作業完了です。
お疲れさまでした!

…………どうですか、無事にプレビューできましたか。
いつまで待ってもプレビュー画面が生成完了にならなかったり、「ページが見つかりませんでした」な表示が出たりしていませんか。

今回のようにWordPressアドレス(URL)とサイトアドレス(URL)を違うものにした場合、どうやら記事のプレビュー機能が使えなくなったりすることがあるみたいです。

わたしはなりました!!
ですので、その復旧方法をご説明いたします。

記事のプレビュー機能を復旧させる方法

WordPressのテーマフォルダに入っている「function.php」。
これにコードを追加します。

いままでおこなった「index.php」「.htaccess」変更作業と同様に、

サーバーから「function.php」をダウンロード
↓↓↓
テキストエディタで「function.php」にコードを追加する
↓↓↓
コードを追加した「function.php」をサーバーにアップロードする

という流れです。

サーバーから「function.php」をダウンロードする

「function.php」はテーマフォルダの中にあります。
FTPソフトでテーマフォルダにアクセスしましょう。

具体的には以下の場所です。

【ドメイン直下のルートディレクトリ】>>
【WordPressをインストールしたサブフォルダ(サブディレクトリ)(例:hogehoge)】>>
【wp-content】>>
【themes】>>
【使用しているテーマのフォルダ】
※有料テーマなどで専用の子テーマを使っている場合は、その子テーマフォルダを選びます。
たとえばAFFINGER6の専用子テーマJET2を使っている場合は、JET2フォルダ「affinger-jet-child」を選びます。
使用している子テーマに「function.php」が存在しない場合は、親テーマを選びます。
>>【function.php】

ダウンロードしたfunction.phpはこれまでと同じように、バックアップとしてコピーを取っておきます。

「function.php」にテキストエディタでコードを追加する

テキストエディタは文字コードを指定して保存できるものを使用してください。
たとえばフリーソフトの『TeraPad』です。

追加するコードは以下のとおり。
保存するときは、文字コードを「UTF-8N」「UTF-8(ボムなし)」に指定するのを忘れないでください~。

// サイトアドレスと公開アドレスが違うのでプレビューできない問題を解決!
function replace_preview_post_link ( $url ) {
  $replace_url = str_replace('https://ドメイン/WordPressをインストールしたフォルダ名', 'https://ドメイン', $url);
  return $replace_url;
}
add_filter('preview_post_link', 'replace_preview_post_link');

参考までに、うちのサイト(https://www.aksd.net/)がWordPressを「hogehoge」フォルダにインストールしているとするならこんな感じのコードになります↓↓↓

// サイトアドレスと公開アドレスが違うのでプレビューできない問題を解決!
function replace_preview_post_link ( $url ) {
  $replace_url = str_replace('https://www.aksd.net/hogehoge', 'https://www.aksd.net', $url);
  return $replace_url;
}
add_filter('preview_post_link', 'replace_preview_post_link');

コードを追加した「function.php」をサーバーにアップロードする

作業をおこなったfunction.phpを、FTPソフトを使ってサーバーにアップロードしましょう。
原則的には、ダウンロードしたのと同じところにアップロードして上書きします。

親テーマの「function.php」をダウンロードした人は、子テーマフォルダにアップロードするのがおすすめ!
そうしておくと、親テーマのアップデートがあったときに「function.php」が勝手に上書きされてしまうのを回避できます。

作業完了!

以上で作業完了です。
プレビュー機能が無事に復旧しているはず!

ややこしいし、手間のかかる作業ですよね……お疲れさまでした!

そもそもなぜWordPressをサブディレクトリにわざわざインストールするの?

なんでこんなめんどくさいことをしてまで、WordPressをサブフォルダ(サブディレクトリ)にインストールするのか。
初めからドメイン直下(ルートディレクトリ)にインストールすればいいじゃない!
そしたらこんな苦労は……、と言いたくもなります(笑)。

わたしがWordPressをサブフォルダ(サブディレクトリ)にインストールした理由は、もともと構築していたウェブサイトのファイルとWordPressのファイルをドメイン直下(ルートディレクトリ)で混在させたくなかったからです。

当サイト『あとりえ極星堂』は、開設2003年の老舗サイト。
もともとWordPressではなく、テキストエディタで作った静的ページでした。
さすがに2003年当時のファイルはないものの、必要ファイルがルートディレクトリにそこそこ並んでいます。
ここにWordPress用のPHPファイルを混ぜたくなかったんです。
ただでさえもややこしいWordPressなのに、ルートディレクトリが散らかることによってさらにややこしくなっちゃうのはイヤすぎる!

それで、「あとでめんどくさい作業がものすごくありそう……」と不安に思いつつも、サブディレクトリにWordPressをインストールすることを選びました。

不安に思ったとおりのややこしい作業はあったものの、解決できてほっとしました。

イラストレーター 鍋弓わた が表紙を描いた本

イラストレーター 鍋弓わた が描いた漫画(同人誌)

  • あとりえ極星堂 運営者
  • 新しいページ

鍋弓わた

こんにちは。近代史に強いイラストレーターの鍋弓わたです。
イラストや漫画を描くのが好きなので、一児の母になったいまも仕事に趣味にぼちぼち描いています。
サークル名『極星堂きょくせいどう』で同人活動もしています。
大阪生まれの奈良在住。

よりよい作品づくり、より楽しく生きるために自己肯定感を高める方法を模索中。
趣味は2003年からおこなっているウェブ制作。
気がつけば今年で18年目。

⇒もっと自己紹介

pixiv 小説家になろう

⇒お問い合わせ

-サイト&ブログの作り方
-