「readme.html」の正体判明!WordPress不要ファイルをGSCと共存させる.htaccess設定

パソコン

WordPressサイトを運用していると、見慣れないファイルがルートディレクトリに存在することに気づくことがあります。特に「readme.html」という名前のファイルは、その正体が何なのか、そして放置しておいて良いものなのか、多くの人が疑問を抱くことでしょう。中には「readme.xxxxxxxxxxxxxxxxxxxx.html」のようにランダムな文字列が付加されているものもあり、Google Search Console(GSC)の所有権確認ファイルと混同されがちです。本記事では、この「readme.html」の真の姿を明らかにし、それがもたらす潜在的なリスク、そしてGSCの確認ファイルと安全に共存させるための賢い.htaccess設定について詳しく解説します。

スポンサーリンク
スポンサーリンク

「readme.html」の正体はWordPress同梱ファイル!その危険性と対処法

WordPressサイトのルートディレクトリに存在する「readme.html」ファイルは、実はWordPress本体に同梱されている標準のファイルです。多くの場合、WordPressをインストールした際に自動的に配置されるもので、その中身はWordPressの概要、有名な「5分間インストール」の手順、アップデート方法、ライセンス情報、そしてMatt Mullenweg氏からの歓迎メッセージなど、WordPressに関する基本的な説明が記されています。ファイル名が「readme..html」となっている場合もありますが、これはWordPressのバージョンや更新によって生じることがあり、基本的には同じWordPressのreadmeファイルだと考えて問題ありません。

この「readme.html」ファイル自体は、WordPressの機能に影響を与えるものではなく、無害な存在です。しかし、外部からアクセスできる状態にしておくことには、セキュリティ上の潜在的なリスクが伴います。ファイルの中にはWordPressのバージョン情報や、インストール時に使用されるパスなどのヒントが含まれている可能性があり、これが悪意のある攻撃者にとって、あなたのサイトがどのバージョンのWordPressを使用しているかを特定する手がかりとなり得るためです。バージョン情報が特定されると、そのバージョンに存在する既知の脆弱性を狙った攻撃を受けやすくなる可能性があります。

このようなセキュリティリスクを回避するための対処法は大きく分けて二つあります。一つは「readme.html」ファイルを完全に削除してしまう方法です。WordPressの動作には一切影響しないため、削除しても問題ありません。もう一つは、ファイルを削除せずに外部からのアクセスを制限する方法です。これにより、ファイルはサーバー上に残しておきながら、一般のユーザーや攻撃者からは見えないようにすることができます。特に、WordPressのメジャーアップデート時にはこのファイルが再生成されることがあるため、削除してもまた現れるという運用上の課題も考慮に入れる必要があります。

GSCファイルと共存!WordPress不要readmeを.htaccessで安全に隠す設定

「readme.html」ファイルを完全に削除しても、WordPressのメジャーアップデート時に再び生成される可能性があるため、その都度手動で削除し直すのは手間がかかります。このような手間を省き、精神的な負担を軽減する最もスマートな方法は、.htaccessファイルを使って外部からのアクセスを恒久的に拒否することです。これにより、ファイルが復活したとしても、自動的にアクセスがブロックされるため、常に安全な状態を保つことができます。

しかし、ここで一つ注意が必要です。Google Search Console(GSC)のサイト所有権確認には、ルートディレクトリにgoogleXXXX.htmlのような特定のHTMLファイルを配置する方法がよく用いられます。もし.htaccessで「すべてのHTMLファイルをブロックする」といった安易な設定をしてしまうと、GSCの確認ファイルまでブロックされてしまい、所有権の確認ができない状態になってしまいます。そこで、GSCの確認ファイルは許可しつつ、WordPressの不要なreadmeファイルをブロックするという、両者を共存させるための.htaccess設定が必要になります。

具体的な設定方法としては、WordPressが設置されているディレクトリ(通常はサイトのルートディレクトリ)の.htaccessファイルに、以下のルールを追記します。まず、GSCの確認ファイル(ファイル名がgoogleで始まるHTMLファイル)へのアクセスは許可し、次にWordPressのreadme.html系ファイル(readmeで始まるHTMLファイル)へのアクセスを拒否する、という二段階のルールを記述します。これにより、必要なGSCファイルはGooglebotが問題なく読み取れる一方で、セキュリティリスクのあるreadmeファイルは一般公開されなくなります。設定後は、実際にGSCファイルとreadmeファイルにそれぞれアクセスし、意図した通りの挙動(GSCは200 OK、readmeは403 Forbidden)になることを必ず確認しましょう。

# GSC の確認ファイルは許可(ファイル名が google で始まる場合)
<FilesMatch "^google.*\.html$">
Order Allow,Deny
Allow from all
</FilesMatch>

# WordPress の readme.html は拒否
<FilesMatch "readme.*\.html">
Order Allow,Deny
Deny from all
</FilesMatch>

※Apache 2.4以降の環境では、Order Allow,Denyの代わりにRequire all grantedRequire all deniedを使用する方が推奨されます。

# GSC の確認ファイルは許可(ファイル名が google で始まる場合)
<FilesMatch "^google.*\.html$">
Require all granted
</FilesMatch>

# WordPress の readme.html は拒否
<FilesMatch "readme.*\.html$">
Require all denied
</FilesMatch>

WordPressサイトのルートディレクトリに潜む「readme.html」は、一見すると無害な説明書ですが、その内容がWordPressのバージョン情報などを露出させ、潜在的なセキュリティリスクとなり得ます。完全削除という選択肢もありますが、アップデート時に再生成される手間を考えると、.htaccessによるアクセス制限が最も現実的で、かつ「精神的に楽」な解決策と言えるでしょう。さらに、GSCの所有権確認ファイルとの共存を考慮した詳細な.htaccess設定を施すことで、セキュリティを確保しつつ、サイトの健全な運用を妨げない理想的な状態を実現できます。この設定を導入することで、不要な心配から解放され、より安心してWordPressサイトの運営に集中できるようになるはずです。