2026年9月5日
2026年9月5日
WordPressで「wp-login.php」が404になる原因と対処法
wp-login.php を開くと404(ページが見つかりません)になる場合、原因はおおむね「セキュリティ系プラグインでログインURLが変更されている」「WordPressの設置場所やURL設定が想定と違う」「ファイル自体が無い、またはサーバー側で止められている」の3つに分かれます。404ページの見た目で、WordPressが返しているのかサーバーが返しているのかを見分けると、原因を早く絞り込めます。この記事では、その見分け方と、原因ごとにログインできる状態へ戻す手順を説明します。
まず404ページの見た目を確認する
https://example.com/wp-login.php を開いたときに表示される404ページが、次のどちらかを確認します。
- テーマのデザインで表示される404ページ(ヘッダーやメニューがある):WordPress自体は動いており、プラグインなどが意図的に
wp-login.phpを404扱いにしています。ログインURL変更系のプラグインがもっとも有力です。 - サーバーの素っ気ない404ページ(白地に「Not Found」だけなど):WordPressにリクエストが届く前に、Webサーバーが「そのファイルは無い」と判断しています。ファイルの欠落、設置場所の違い、サーバー設定を疑います。
ブラウザの開発者ツール(F12)の「Network(ネットワーク)」タブで wp-login.php のリクエストを選ぶと、ステータスコードと応答の中身を確認できます。CDNやキャッシュ系プラグインを使っている場合は、古い404応答がキャッシュされていることもあるので、キャッシュを削除してから確認します。
原因1:ログインURLを変更するプラグイン
不正ログイン対策として、ログインページのURLを別のものに変え、wp-login.php へのアクセスを404にするプラグインがあります。代表的なものに「SiteGuard WP Plugin」のログインページ変更機能や、「WPS Hide Login」などがあります。これらは設計どおりの動作で、故障ではありません。
変更後のURLを確認する
自分で設定した覚えがない場合は、サイトの制作者や前任者に変更後のURLを確認するのが最初の手です。プラグインによっては、設定時に変更後のURLを管理者へメールで知らせる機能があるため、管理者アドレスの受信箱も検索します。
WP-CLIが使える場合は、有効なプラグインの一覧から、ログインURL変更系のものが入っているかを確認できます。
wp plugin list --status=active
URLが分からない場合はプラグインを止める
変更後のURLが分からない場合は、そのプラグインを無効化すれば標準の wp-login.php に戻ります。作業前に、サーバーのファイルとデータベースのバックアップを取ってください。
FTPやサーバーのファイルマネージャーで、wp-content/plugins/ 内の該当プラグインのフォルダ名を変更します(例:wps-hide-login を wps-hide-login.off に)。WP-CLIなら次のように無効化できます。
wp plugin deactivate wps-hide-login
フォルダ名は実際のプラグインに合わせて読み替えてください。ログインできたら、プラグインを有効に戻し、設定画面で変更後のURLを確認して控えておきます。
.htaccess にルールが残っている場合
プラグインによっては、ログインページの変更を .htaccess の書き換えルールで実現しています。フォルダ名の変更で無理やり止めた場合、そのルールが残って404が続くことがあります。.htaccess をバックアップしてから開き、プラグイン名を含むコメントで囲まれたブロックが残っていれば、その部分を削除します。ほかのルール(WordPress標準の # BEGIN WordPress から # END WordPress のブロックなど)は残しておきます。
原因2:WordPressの設置場所やURL設定の違い
サブディレクトリに設置している
WordPress本体を /wp/ などのサブディレクトリに置き、サイトのトップだけをドメイン直下で表示している構成では、ログインページは https://example.com/wp/wp-login.php のようにサブディレクトリ側にあります。ドメイン直下の wp-login.php は存在しないため404になります。サーバー上で wp-login.php がどのフォルダにあるかを確認し、そのパスでアクセスします。
WordPressアドレスの設定が間違っている
管理画面の「設定」→「一般」にある「WordPress アドレス (URL)」は、WordPress本体の場所を示します。ここを誤って変更すると、ログイン画面へのリンクやリダイレクト先が存在しない場所を指し、404になります。現在の値はWP-CLIで確認できます。
wp option get siteurl
wp option get home
管理画面に入れない状態で値を直すには、wp-config.php の /* That's all, stop editing! */ より上に、正しいURLを定義します。
define( 'WP_SITEURL', 'https://example.com' );
define( 'WP_HOME', 'https://example.com' );
サブディレクトリ構成なら、WP_SITEURL は https://example.com/wp のように本体の場所を指定します。この定数を書いている間は、管理画面の該当欄は編集できなくなります。ログインできたら「設定」→「一般」で正しい値を保存し、必要に応じて定数を外します。
原因3:ファイルが無い、またはサーバーで止められている
wp-login.php が欠けている
サーバーの404ページが表示され、設置場所も正しい場合は、wp-login.php 自体が無い可能性があります。セキュリティスキャンでの誤削除や、コア更新の失敗で消えることがあります。WP-CLIでは、コアファイルが公式の配布物と一致しているかを確認できます。
wp core verify-checksums
wp-login.php が見つからないと報告された場合は、同じバージョンのWordPressを入手し、該当ファイルだけをアップロードし直します。バージョンは wp core version か、wp-includes/version.php で確認できます。WP-CLIでコアファイル一式を入れ直す場合は、wp core download --version=現在のバージョン --skip-content --force を使います。いずれもwp-config.php や wp-content には触れませんが、念のためバックアップを取ってから行ってください。
サーバー設定でアクセスを止めている
.htaccess やNginxの設定で、wp-login.php へのアクセスを制限していることがあります。たとえば、特定のIPアドレス以外を拒否するルールを書いた結果、別の場所からアクセスすると404や403になるケースです。過去に自分や制作者がログインページの保護設定を入れていないか、.htaccess とサーバーのコントロールパネルのアクセス制限設定を確認します。Nginxを自分で管理している場合は、PHPファイルを処理する location ブロックの設定や root の指定が、WordPressの設置場所と合っているかも確認します。
直ったあとに見直したいこと
ログインできるようになったら、次の点を整理しておくと、同じことが起きにくくなります。
- ログインURLを変更している場合は、変更後のURLを関係者が分かる場所に記録しておく
- 管理者のメールアドレスが、実際に受信できるアドレスになっているかを「設定」→「一般」で確認する
- wp-config.php に入れた
WP_SITEURL・WP_HOMEの定数を残すかどうかを決める - 不要になったセキュリティ設定やアクセス制限のルールを整理する
プラグインの機能名や設定画面の表記は、バージョンによって変わることがあります(2026年10月現在)。
まとめ
wp-login.phpの404は、テーマの404ページならプラグインによるログインURL変更、サーバーの404ページならファイル欠落や設置場所・サーバー設定を疑う- ログインURL変更系プラグインが原因なら、変更後のURLを確認するか、プラグインを無効化して標準に戻す。.htaccess に残ったルールにも注意する
- 設置場所やURL設定の誤りは、
wp option get siteurlで確認し、WP_SITEURL・WP_HOMEで一時的に上書きして直す - ファイル欠落は
wp core verify-checksumsで確認し、同じバージョンのファイルを入れ直す - どの作業も、ファイルとデータベースのバックアップを取ってから行う