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は必ず記録してください。

お気軽にご相談ください

お見積りへ お問い合わせへ