2026年7月14日
2026年7月14日
WordPressのwp-login.phpをリネームする安全な方法(ファイルは変えずにURLを変える)
ログインページの URL を変えたいとき、wp-login.php のファイル名を直接書き換えるのはおすすめできません。ログアウトやパスワードリセットが動かなくなるうえ、WordPress を更新すると元のファイルが戻ってきてしまうからです。安全なのは、ファイルには手を付けず、プラグインで「ログインに使う URL」だけを変える方法です。この記事では、直接リネームが失敗する理由、プラグインで URL を変える手順、変更後に確認すべきこと、URL を忘れて入れなくなったときの戻し方を解説します。
ファイルを直接リネームしてはいけない理由
wp-login.php は単なるログイン画面ではなく、ログイン・ログアウト・パスワードリセット・ユーザー登録・パスワード保護ページの解除など、認証まわりの処理を1つのファイルで受け持っています。そして WordPress のコアやテーマ、プラグインは、この名前を前提に動いています。
wp_login_url()やwp_logout_url()、wp_lostpassword_url()などの関数はwp-login.phpを指す URL を返す- ログインしていない状態で
/wp-admin/を開くと、wp-login.phpへ転送される - パスワードリセットのメールに記載されるリンクも
wp-login.phpを指す
ファイル名だけを my-login.php などに変えると、これらがすべて存在しないファイルを指すことになり、ログアウトボタンやパスワードリセットのリンクが 404 になります。さらに、WordPress のコア更新ではコアファイルが上書きされるため、wp-login.php が再び作られます。結果として「新しい名前のファイル」と「元のファイル」の両方が存在し、URL を隠すという目的も果たせません。
安全な方法:プラグインでログインURLを変える
ログイン URL 変更プラグインは、ファイルを残したまま、次のように振る舞います。
- 新しく決めた URL(例:
/my-entrance/)へのアクセスを、内部でwp-login.phpの処理につなぐ - 直接
/wp-login.phpを開いた場合は 404 などを返す - ログインしていない状態で
/wp-admin/を開いても、ログインページには転送しない - WordPress が生成するログイン関連のリンクを、新しい URL に書き換える
コアのファイルを変更しないので、WordPress を更新しても設定は維持されます。
代表的なプラグインには次のようなものがあります。
- WPS Hide Login: ログイン URL の変更に特化した軽量なプラグイン。設定項目が少なく、導入しやすい
- SiteGuard WP Plugin: 日本語の国産セキュリティプラグイン。ログインページ変更のほか、画像認証やログイン試行の制限などをまとめて設定できる
- Solid Security(旧 iThemes Security): 総合セキュリティプラグイン。管理画面を隠す機能の一部としてログイン URL を変更できる
すでに総合セキュリティプラグインを使っている場合は、その中の機能を使い、ログイン URL 変更のためだけに別のプラグインを重ねないようにしてください。複数のプラグインが同じ処理に介入すると、ログインページが表示されない、転送が繰り返されるといった不具合の原因になります。プラグインの機能や設定項目の名称は更新で変わることがあるので(2026年10月現在)、導入時は各プラグインの説明ページを確認してください。
変更の手順
1. 事前の準備
作業前に、サイトのファイルとデータベースのバックアップを取ります。あわせて、FTP / SFTP、SSH、レンタルサーバーのファイルマネージャーのいずれかでプラグインのフォルダを操作できることを確認しておきます。新しい URL を忘れたり、プラグインが不具合を起こしたりしたときに、管理画面を使わずに元に戻すためです。
2. 新しいURLを決める
新しいスラッグは、推測されにくい文字列にします。login、admin、signin、サイト名そのものなど、攻撃ツールが最初に試す単語は避けてください。英数字を組み合わせた、意味のない文字列のほうが向いています。
3. プラグインで設定する
WPS Hide Login の場合は、有効化後に「設定」→「一般」の下部に追加されるログイン URL の欄に新しいスラッグを入力して保存します。SiteGuard WP Plugin の場合は、プラグインのメニューにあるログインページ変更の設定で有効化し、変更後の名前を指定します。
保存したら、表示された新しいログイン URL をすぐにブックマークし、パスワードマネージャーにも登録します。サイトを複数人で管理している場合は、関係者への共有も忘れずに行ってください。
4. キャッシュの対象から外す
キャッシュ系プラグインや CDN を使っている場合は、新しいログイン URL をキャッシュの対象から外します。ログインページがキャッシュされると、古い nonce が使い回されてログインに失敗する、別の人のエラー表示が見えるといった問題が起きます。多くのキャッシュプラグインは wp-login.php を自動で除外しますが、新しい URL は自動では除外されないことがあります。
変更後に確認すること
設定直後に、シークレットウィンドウなどログアウトした状態で、次を順に確認します。
- 新しい URL でログイン画面が表示され、ログインできる
/wp-login.phpと、ログアウト状態での/wp-admin/が、ログイン画面を表示しない- 管理画面のログアウトボタンが正常に動く
- 「パスワードをお忘れですか ?」からリセットメールを送り、メール内のリンクが新しい URL で開く
- パスワード保護した投稿がある場合、パスワード入力で閲覧できる
テーマやプラグインの中に wp-login.php が直接書かれていると、そのリンクだけ 404 になります。SSH が使えるなら、次のコマンドで直書きされている箇所を探せます。
grep -rn "wp-login.php" wp-content/themes/ wp-content/plugins/ --include=*.php
自作テーマで見つかった場合は、wp_login_url() や wp_logout_url() を使う書き方に直すと、ログイン URL を変えても追従するようになります。
URLを忘れて入れなくなったときの戻し方
新しい URL が分からなくなった場合でも、ファイルを直接操作すれば元に戻せます。FTP やファイルマネージャーで wp-content/plugins/ を開き、使っているプラグインのフォルダ名を変更します(例: wps-hide-login を wps-hide-login-off にする)。フォルダが見つからなくなったプラグインは無効化されるため、/wp-login.php で通常どおりログインできるようになります。ログイン後にフォルダ名を戻し、プラグインを有効化し直して URL を確認してください。
WP-CLI が使えるなら、プラグインの無効化はコマンド1つで済みます。
wp plugin deactivate wps-hide-login
ログインURLの変更だけでは守り切れない
ログイン URL の変更は、ボットによる wp-login.php への機械的なアクセスを減らすのに役立ちますが、URL が知られれば効果はなくなります。また、xmlrpc.php 経由のログイン試行はこの対策では止まりません。強力なパスワード、二段階認証、ログイン試行回数の制限、使っていなければ XML-RPC の無効化といった対策と組み合わせて使ってください。接続元が固定されている環境なら、Web サーバーで IP アドレスを制限する方法も有効です。
まとめ
wp-login.phpのファイル名を直接変えると、ログアウトやパスワードリセットが壊れ、コア更新でファイルが復活する- ファイルは残したまま、プラグインでログイン URL だけを変えるのが安全
- 総合セキュリティプラグインを使っているなら、その中の機能を使い、同じ役割のプラグインを重ねない
- 新しい URL は推測されにくい文字列にし、ブックマークとパスワードマネージャーに保存する
- 変更後はログアウト、パスワードリセット、キャッシュの除外を確認する
- 入れなくなったら、FTP でプラグインのフォルダ名を変えれば元に戻せる