サイトにWordPressをインストールする前にWordPressフォルダの上の階層に一つフォルダを入れることによってサイトセキュリティを高めることができます。
ドメイン直下にWordPressのファイルが存在しているのはセキュリティリスクがあり、WordPressのファイルがルートディレクトリにインストールされているものと想定して攻撃されることがあります。
その攻撃を防ぐためにもWordPressをサブディレクトリにインストールし、ディレクトリ名もWordPressと関連性が薄い名前などにすると、攻撃を受けにくくなりサイトの安全性が高くなります。
ディレクトリについて
ルートディレクトリ
ファイル構造で最上階層のディレクトリ(もしくはフォルダ)のことです。
※今回必要なセキュリティ対策でこのルートディレクトリにWordPressをインストールせずに、サブディレクトリにインストールする方法の解説になります。
・https://ルートディレクトリ/
サブディレクトリ
ルートディレクトリの中に作成されたディレクトリ(もしくはフォルダ)のことです。ルートディレクトリの中のディレクトリはすべてサブディレクトリになります。
・https://ルートディレクトリ/サブディレクトリ/
・https://ルートディレクトリ/サブディレクトリ/サブディレクトリ/
WordPressインストール前とインストール後にサブディレクトリに入れる方法を解説します。
WordPressインストール前の場合
WordPressをインストールする際にサーバーによって異なりますが、コントロールパネルからURLの語尾にwp-数字やcms-数字などを入力することによって、ルートディレクトリが語尾に入力された名前のフォルダが作られその中サブディレクトリにWordPressがインストールされます。
WordPressインストール後にFTPソフトでフォルダを見にいくとルートディレクトリにwp-20220603のフォルダができておりサブディレクトリにWordPressがインストールされていることを確認することができます。
※参考例ではwp-20220603としましたが、wpやwordpressなどのわかりやす名前は避けた方がいいと思います。
サイトアドレスの変更
WordPress管理画面→設定→一般でサイトアドレス(URL)のwp-20220603を削除します。
削除するのはサイトアドレス(URL)のみです。
※WordPressアドレス(URL)は変更してはいけません。
変更してしまうとWordPressにログイン出来なくなってしまいます。
wp内のindex.phpと.htaccessダウンロード
大まかな流れはWordPressにあるindex.phpと.htaccessファイルをルートディレクトリに複製して編集していきます。
まずは、WordPressフォルダ内にあるindex.phpのファイルをローカルにダウンロード。
WordPressのindex.phpはそのまま置いておきます。
index.phpのコード編集
ダウンロードしたindex.phpをVSCodeかメモ帳で開きコード編集します。
コードの一番下にrequire __DIR__かrequire __FILE__の部分以降のwp-blog-header.php’;にルートディレクトリフォルダ名のwp-20220603を入力します。
・index.php追記前↓
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
・index.php追記後↓
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-20220603/wp-blog-header.php';
index.phpに追記後、ルートディレクトリにindex.phpをアップロードします。
.htaccessのコード編集
ダウンロードした.htaccessをVSCodeかメモ帳で開きコード編集します。
RewriteBaseとRewriteRule . index.php 【L】 の箇所にルートディレクトリファイル名(wp-20220603)の記述を複製した方のみ削除します。
・.htaccess編集前↓
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp-20220603/
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . wp-20220603/index.php [L]
</IfModule>
3行目と7行目のルートディレクトリのフォルダ名を削除します。
・.htaccess編集後↓
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / #←←←(wp-20220603)を削除
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L] #←←←(wp-20220603)を削除
</IfModule>
.htaccessのルートディレクトリ名削除後、ルートディレクトリに.htaccessをアップロードします。
ここまでの作業でhttps://design-pull.com/サブディレクトリ名のURLからhttps://design-pull.comに変更することができました。