一覧ページ(Index of)を非表示にする方法|WordPressアップロードフォルダの例

一覧ページへの403制限

Google Search Consoleでサイトをチェックしていると、たまにWordPressのアップロードディレクトリ内がインデックスされていることがあります。

例えば、当サイトであれば「https://nelog.jp/wp-content/uploads/」のようなURLの場所。

Index of wp-content uploads

「/wp-content/uploads/」ディレクトリ内は、WordPressの仕様として表示されるようになっているようです。中身もほぼ公開している画像(ファイル)なので、表示されても取り立てて問題があるわけではありません。

けれど、

uploadsの一覧ページが、Googleにインデックスされるのはあまり好ましくない

と思う人も中にはおられると思います。

何せ、こんなページを訪問者の方に見てもらいたいわけでは無いと思うので。

先日、僕が運営しているフォーラムの方に「一覧ページを表示したくない」という質問が来たので、僕の備忘録がてら分かりやすく方法を書き記しておこうと思います。

スポンサーリンク
レクタングル(大)広告

「一覧ページ(Index of)」が表示される原因

まず、こんな感じで「一覧ページ(Index of)」が表示されるのは、ディレクトリ内にindex.html、index.htm、index.php…他ファイルがないから表示されます。

アップロードフォルダ内の一覧ページ例

ですので、ディレクトリ内すべてに空のindex.htmlファイルを置いてやれば、問題は解決します。

けれど、「/wp-content/uploads/」ディレクトリ内にある全てのディレクトリで行うとなると作業は膨大です。

全てのディレクトリに対して「空のindex.html」ファイルを置いていくのは、現実的な方法ではないでしょう。

なので以下では、.htaccessファイルを利用して「一覧ページ(Index of)」に対してアクセス制限を行う方法を紹介します。

.htaccessで制限する方法

「一覧ページ(Index of)」表示を制限するにはまず、サーバーツール、もしくはFTPソフトを用いて、サイトの.htaccessファイルを開きます(無い場合は作成)。

.htaccessファイルを開く

そのファイルの最後尾に以下のように追記するだけです。

.htaccessファイルに既に何か書き込まれている場合は、絶対に変更しないでください。書き加えるのみです。

何か書き込まれている場合は、.htaccessファイルの最後尾に以下のように追記するだけで良いかと思います。

.htaccessファイルの最後尾に追記する

上記のように追記した後、「/wp-content/uploads/」ディレクトリ内にアクセスしてみると、以下のように403エラーが表示され、アクセスが制限されていることが分かります。

MixHostの403ページ

.htaccessファイルは編集を誤ると、重大なエラーを引き起こす設定サーバー用のファイルです。なので、編集を行う前は事前にファイルをコピーしてバックアップを取っておいてください。そして、何か不具合が出た場合はそのファイルから復元してください。

.htaccessでOptions使用に制限がかかっているサーバーの場合

例えば、さくらインターネットなどのレンタルサーバーでは、Optionsは利用できません。

そういう場合は、.htaccessに以下を書き加えます。

DirectoryIndex、サイト訪問者がディレクトリをリクエストしたときに調べるリソースのリストを設定する記述です。

DirectoryIndex index.html index.htm index.cgi index.php .ht

ディレクトリへのアクセスがあった場合index.html → index.htm → index.php → index.cgiとファイルをたどっていき、無い場合は「.ht」となり、403を返します。

サーバーでOptionsが使えるかどうかわからない場合は、まずはOptionsを利用した方法を試してみてください。それでうまく制限できなかった場合はDirectoryIndexの記述方法を試してみてください。

参考 DirectoryIndex ディレクティブ

MixHostだとサーバーの管理画面から簡単に制限できる

今回、「一覧ページ(Index of)」について調べていて気づいたのですが、僕が現在使用しているMixHostだとサーバーの管理パネルから簡単に制限を行うことが可能です。

MixHostで制限する方法

MixHostで制限を行うには、まずサーバーの管理画面(cPanel)にログインします。

「詳細」項目にある「インデックス」を選択します。

cPanelの詳細項目にあるインデックスを選択する

フォルダ一覧が表示されるので、「public_html」を選択します。

public_htmlを選択

「“/home/ログイン名/public_html” のインデックスの設定」という画面が表示されると思うので、「インデックスなし」を選択し「保存」ボタンを押してください。

public_html”のインデックスの設定

このようにすることで、MixHostでは一覧ページに403アクセス制限をかけることができます。

MixHostの403ページ

サーバーの機能で行う場合は手軽ですし、例え不具合が出たとしても設定を元に戻すだけなので簡単です。

参考 ファイルの一覧(Index of)を非表示にする方法 ? mixhost ヘルプ&サポート

まとめ

今回、なるべく手間をかけずに「一覧ページ(Index of)」に対して403アクセス制限をかける方法を紹介しました。

紹介した方法行うことで、Wordpressのアップロードディレクトリ内が丸見えになることを防ぎ、Googleなどの検索エンジンにインデックス登録されるのを防ぐことが出来るかと思います。

もちろん、既にインデックスされている場合は、次のクロールが訪れて処理が終わればインデックスから除外されることと思われます。

MixHostサーバーを使っている場合は手軽に行えます。

公式 MixHost