WordPressサイトで外部からのアクセスを拒否するには

公開日:2021/12/30更新日:2022/1/25

WordPressを完全にHeadLess CMSとして使いたい場合など、管理者やログインユーザーなどの一部のユーザーにだけアクセスを許可し、それ以外のユーザーからのアクセスを拒否するニーズがあるかと思います。デフォルトでは、REST API含め、誰でも自由にコンテンツを閲覧できるからです。

これを実現するための方法はいくつかありますが、プラグインを使うのが正攻法で、なおかつ便利です。以下、具体例を交えて有用な方法を3つご紹介します。

ベーシック認証をかける

昔ながらの方法ですが、最も扱いやすい方法です。正しいユーザー名とパスワードを入力したユーザーのみアクセスを許可し、それ以外を拒否します。

.htaccessファイルを使う方法がスタンダードですが、設定に手間がかかり、扱いに注意が必要なファイルのため、プラグインを使うことをおすすめします。

私が使用しているのはWP Basic Authenticationで、手軽に使える上に、WP REST APIのページやGraphQLなども認証の対象ページになっているので重宝しています。(画像ページは除外)

パスワード保護をする

ベーシック認証と似た機能ですが、パスワードだけで保護することもできます。

パスワード保護のプラグインはいくつもありますが、使い勝手の良さから個人的に愛用しているのはPassword Protected(無料)です。

設定画面でパスワードを入力するだけで、REST APIやRSSフィードを含めたサイト上のコンテンツをパスワードで保護してくれます。画像ページは除外されますが、HeadLess CMSとして使う場合は逆に良い仕様かと思います。

リダイレクトをかける

そのページが存在していること自体を隠したい、万が一にもパスワード保護を突破されたくない、そういった場合には、別のサイトへリダイレクトをかけるのがおすすめです。代表的なプラグインはRedirection(無料)です。

例えば、example.comがメインページで、wp.example.comがコンテンツ管理サイト(HeadLess CMSとして使うサイト)の場合、wp.example.comへのアクセスをメインページであるexample.comへ転送できます。

管理画面の他に、画像ページもリダイレクトされないため、画像ページを含めた全てのページをリダイレクトして欲しい場合は、他のプラグインを使うか、htaccessなどレンタルサーバー側での操作が必要になります。