2026年5月20日
2026年5月20日
WordPressのログインURLを変更してセキュリティを高める方法
はじめに
/wp-login.php はWordPressのデフォルトログインURLとして攻撃者に広く知られており、ブルートフォース攻撃のターゲットになります。ログインURLを変更することで攻撃の大半を回避できます。
方法1:WPS Hide Loginプラグイン(推奨)
# インストール・有効化
wp plugin install wps-hide-login --activate
# 現在のカスタムログインURLを確認
wp option get whl_page
# カスタムURLを設定(例: my-secret-login)
wp option update whl_page 'my-secret-login'
設定後は https://example.com/my-secret-login でログイン画面にアクセスできます。/wp-login.php は404になります。
方法2:.htaccessで直接リダイレクト
# wp-login.php への直接アクセスをブロック
<Files "wp-login.php">
Order deny,allow
Deny from all
Allow from 203.0.113.1 # 自分のIPのみ許可
</Files>
# または特定IPのみwp-login.phpを許可
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-login\.php
RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.1$
RewriteRule ^ /404 [R=302,L]
方法3:Nginxで設定
# /wp-login.php を特定IPのみ許可
location = /wp-login.php {
allow 203.0.113.1;
deny all;
fastcgi_pass php-fpm;
include fastcgi_params;
}
カスタムログインURLを忘れた場合
# WP-CLIで確認
wp option get whl_page
# プラグインを無効化して元のURLに戻す
wp plugin deactivate wps-hide-login
# → /wp-login.php でアクセス可能に
ログインURLを変更する際のベストプラクティス
// wp-config.php に定数として保存(バックアップ用)
// ※ このオプションはプラグインが管理するため直接は不要
// パスワードマネージャーに必ず保存すること
# 現在の設定を記録しておく
wp option get whl_page >> ~/wp-login-url-backup.txt
admin-ajax.phpとwp-cron.phpは除外が必要
WPS Hide Loginはこれらを自動的に除外しますが、手動設定の場合は明示的に除外が必要です。
# admin-ajax.php と wp-cron.php は除外
<Files "admin-ajax.php">
Allow from all
</Files>
<Files "wp-cron.php">
Allow from all
</Files>
注意事項
- カスタムURLは必ずパスワードマネージャーや安全な場所に記録してください
- WPS Hide Loginを有効化したまま無効化する場合、元の
/wp-login.phpでアクセスできます - キャッシュプラグインとの相性問題が発生する場合はログインページをキャッシュ対象外に設定してください
まとめ
WPS Hide Loginプラグインのインストールと wp option update whl_page 'カスタムURL' の設定だけで安全なカスタムログインURLが設定できます。URLは必ず記録してください。