高速化・セキュリティ

【保守】PHPの脆弱性から守るためのメンテナンスページの作り方

PHPの脆弱性から守るためのメンテナンスページの作り方

2026年10月21日にPHPの脆弱性が発見され、ニュースでも大きく取り上げられました。

WordPressを運営していた方の中には、被害にあったかたもいるかも知れません。

この記事ではその時にWordPressユーザーはどうするべきだったかと、緊急用のメンテナンスページの作成方法について説明したいと思います。

PHPの脆弱性が報告されたときにWordPressユーザーはどうするべきだったか

結論を先に言うと、PHPを動かさない形でメンテナンスページを表示するのが正解です。

そして、レンタルサーバーでWordPressを運営している場合は、そのレンタルサーバー(ホスティング)が脆弱性の対応が完了しました、という連絡をもらって初めてメンテナンスページを解除します。

こうすることで、被害を最小限に抑えることができます。

ただし、PHPのバージョンが推奨の8.3以上になっていることが条件です。

また、WordPress本体、プラグイン、テーマのバージョンも最新になっていることが条件です。

常日頃WordPressを最新に保っていて且つ、緊急時にはメンテナンスにするということをやっていれば、WordPressでハッキングの被害に合うことは少ないといえます。

緊急用のメンテナンスページの作成方法

ここからの作業は、サーバーのファイルを直接編集します。
操作の間違いで、WordPressが表示されなくなったり最悪の場合元に戻せなくなる可能性もあるため、サーバー上の作業に慣れていない場合は、プロの方にお願いするようにしましょう。

今回はXserverの例でやってみたいと思います。

Xserverにログインをしたら、ファイルマネージャを開きます。

Xserverにログインをしたら、ファイルマネージャを開きます。

「新規ファイル」をクリックしてファイルを作成

運営しているドメインのディレクトリの中の「public_html」の中に、WordPressがインストールされています。

このディレクトリの状態で、「新規ファイル」をクリックしてファイルを作成します。

maintenance.html

今回の例ではファイル名を「maintenance.html」とします。

ファイルを名を入力したら、「作成」をクリックします。

maintenance.htmlが作られているのを確認します。

maintenance.htmlが作られているのを確認します。

maintenance.htmlを選択して、「編集」をクリック

maintenance.htmlを選択して、「編集」をクリックします。

編集画面が開いたら、画像のようにコードを入力して「更新」をクリック

編集画面が開いたら、画像のようにコードを入力して「更新」をクリックします。

コードの内容は以下の内容を貼り付けます。本文は適宜変更しても大丈夫ですが、タグが崩れないように気をつけてください。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="robots" content="noindex">
<title>メンテナンス中</title>
<style>
  body { font-family: sans-serif; text-align: center; padding: 80px 20px; color: #333; }
  h1 { font-size: 1.5em; }
</style>
</head>
<body>
  <h1>ただいまメンテナンス中です</h1>
  <p>ご迷惑をおかけしております。<br>再開まで今しばらくお待ちください。</p>
</body>
</html>

「.htaccess」というファイルを選択して、「編集」をクリック

次に、「.htaccess」というファイルを選択して、「編集」をクリックします。

.htaccess

シンプルなものだと、画像のようなコードになりますが、キャッシュプラグインを使っていたり、セキュリティプラグインを使っている場合は、もっと長くコードが書かれているはずです。

メンテナンスページ

ファイルの先頭に、以下のコードを入力して、「更新」をクリックします。(注意!ここで更新をするとメンテナンス画面になりますので、実験としてやる場合はこのあとのメンテナンスページから戻す方法を先にご覧ください。)

ErrorDocument 503 /maintenance.html
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^ - [R=503,L]

メンテナンス画面

サイトにアクセスすると、最初に作成したmaintenance.htmlが表示され、「ただいまメンテナンス中です」という画面になりメンテナンスページが表示されました。

サイトのどのページにアクセスしても、このメンテナンスページになるため、WordPressが動くことはありません。(同様にこのアクセスしているドメインに限ってはPHPも動作しません)

強制的にメンテナンスページにする方法は以上です。

メンテナンススページから通常運用に戻す方法

メンテナンスページが不要になった場合、今の作業の逆をやれば良いのですが、それだと毎回同じようにメンテナンスのページのhtmlファイルを作って、.htaccessファイルにコードを入れる手間が発生します。

そのため、.htaccessファイルのメンテナンス画面に飛ばすコードをコメントアウトしていつでもすぐにメンテナンスページを表示できるようにしておくと良いです。

「.htaccess」というファイルを選択して、「編集」をクリック

もう一度、先程の「.htaccess」ファイルを選択して「編集」をクリックします。

.htaccessのコメントアウト

先程書いた4行のコードの先頭に「# 」を入れてコメント合うとします(コメントアウトでコードを無効にすることができます。)

# ErrorDocument 503 /maintenance.html
# RewriteEngine On
# RewriteCond %{REQUEST_URI} !^/maintenance\.html$
# RewriteRule ^ - [R=503,L]

これで「更新」をクリックします。

このあとに、サイトにアクセスしてサイトが表示されればメンテナンスページの解除ができました。

もし今後、また脆弱性が出た場合には、このコメントアウトを削除することで、メンテナンスページを表示することができます。(最初に作成したmaintenance.htmlファイルは削除する必要はありません)

以上で、メンテナンスページの作成方法の説明を終わります。

まとめ

今回は、PHPの脆弱性が出た場合に慌てないために、メンテナンスページの作成方法について説明しました。

こういった脆弱性は、基本的にはWordPressであれば常に更新を怠らないことが一番大切です。

TEDASKでは、今回のようなWordPressを運営していく上での保守や分析をAIをうまく活用して行くための勉強会を開催していますので、興味のある方は是非ご参加ください。

小規模事業者のためのWordPress保守・運用会 in 東京 | TEDASK
自社サイトをWordPressで運用している小規模事業者のための実践会です。更新・バックアップ・トラブル対応など、保守の実務をひとつずつ。毎回ひとつテーマを決めた解説と質問タイムの90分。新宿三丁目駅から徒歩1分。月1回、参加費1,500円…

また、保守自体をプロに任せたい方は、保守サービスも行っています。

WordPressセキュリティサポート | TEDASK
WordPressセキュリティサポートサービスはWordPressで起こり得る攻撃のための対策と運営のサポートを行うサービスです。

どちらも、お気軽にお問い合わせください。

以上、「PHPを動かさないためのメンテナンスページの作り方」でした。

この記事を書いた人
Toshi Seito

TEDASK代表
WordPressに関する相談実績のべ600件以上!WordPressの高度なカスタマイズから、海外製の高機能WordPressテーマの導入支援、LaravelによるWEBサービス制作はお任せ下さい。