
【WordPress】管理画面へのアクセスをリダイレクトさせる設定方法
はじめに
株式会社TOKOSのフロントエンドエンジニアのタクヤです!
今回はWordPressの管理画面へのアクセスを制限しリダイレクトを設定する方法について紹介します。
WordPressを運用していると、不正ログインや不正アクセスに悩むことがあると思います。特にwp-adminやwp-login.phpへの攻撃は多いため、適切な対策をしないとサイトの乗っ取りリスクが高まります。
そこで今回は、.htaccessを使って管理画面へのアクセスを制限する方法と特定のIPアドレスを除外する方法を紹介していきます。
対象読者
wp-adminやwp-login.phpへの不正アクセスを防ぎたい方- .htaccessを活用したアクセス制限・リダイレクト設定を学びたい方
前提
この記事では、レンタルサーバーのConoHa WINGを利用している前提で解説します。
他のサーバーでも基本的な設定は同じですが、一部設定方法が異なる場合がありますのでご注意ください。
設定方法
1. 管理画面へのアクセスをトップページへリダイレクトする
まず、wp-adminやwp-login.phpへのアクセスをサイトのトップページへリダイレクトする方法を紹介します。
.htaccess に以下のコードを追加(WordPressのルートディレクトリに配置)
<IfModule mod_rewrite.c>
RewriteEngine On
# wp-admin と wp-login.php へのアクセスをリダイレクト
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin(.*)$
RewriteRule .* https://sample.com/ [R=302,L]
</IfModule>wp-login.phpとwp-adminへのアクセスをトップページ(https://sample.com/)にリダイレクトR=302は「一時的なリダイレクト」を意味します(永続的にリダイレクトする場合はR=301)
2. 指定したIPアドレスを除外する
サイトの運営者がWordPress管理画面にアクセスできるように、特定のIPアドレスを除外する設定をします。
.htaccess に以下のコードを追加
<IfModule mod_rewrite.c>
...省略
# 許可するIPアドレス
RewriteCond %{REMOTE_ADDR} !^xxx.xxx.xxx.xxx$
...省略
</IfModule>-
xxx.xxx.xxx.xxxの部分を管理者のIPアドレスに変更してください。 -
複数のIPアドレスを許可する場合は
RewriteCondの行を追加します。
上記の設定をすると、許可されたIPアドレスからのアクセスは管理画面にアクセスでき、それ以外のIPアドレスからのアクセスはトップページへリダイレクトされます。
3. その他の便利なリダイレクト方法
許可されていないユーザーに403エラーを表示する
リダイレクトではなく、管理画面への不正アクセスを403 Forbidden(アクセス禁止)にする方法です。
<IfModule mod_rewrite.c>
...省略
RewriteRule .* - [R=403,L]
</IfModule>特定の国からのアクセスを制限する
国ごとにアクセス制限したい場合は、サーバーのGeoIPモジュールを利用して.htaccessに設定できます。
SetEnvIf GEOIP_COUNTRY_CODE JP AllowCountry
Order Deny,Allow
Deny from all
Allow from env=AllowCountryこの設定では、日本(JP)からのアクセスのみ許可し、他の国からのアクセスを拒否します。
さいごに
今回はWordPressの管理画面へのアクセスを制限しリダイレクトを設定する方法について紹介しました。
今回紹介した.htaccessの設定を活用することで、不正ログインや不正アクセスのリスクを大幅に軽減でき、WordPressのセキュリティを高めるのに有効です。
ぜひ参考にしてください。

