はじめに
株式会社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 に以下のコードを追加 (wp-admin配下に配置)
<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のセキュリティを高めるのに有効です。
ぜひ参考にしてください。