一覧ページ(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ファイルを開く

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

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

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

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

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

mixhostの403ページ

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

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

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

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

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

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

mixhostの詳細はこちら。

先日、にサーバー移転をしました。その後しばらくmixhostを利用し、性能を知り、速さを知り、使いやすさを知っていくうちに、...
スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告

スポンサーリンク

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

  1. 名前:aki 投稿日:2019/02/08(金) 08:42:26 ID:5a4f90e0a

    わいひらさん、こんにちは!

    2月初旬に「Cocoon」を導入して以来、無料なのに様々な対応をしてくださる運営姿勢に心を打たれ、すっかりファンになりました笑

    「一覧ページ(Index of)」の件ですが、サーバー側から割り当てられる初期URLみたいな?「******.mixh.jp」にアクセスすると、一覧になって見えるから、それを防ごうということですよね? cPanelで設定しましたが、解除したら複数の独自ドメインが出ていましたので、この解釈で間違いないと思い込んでいます(^^;

    何も知らずにやっていて、丸見えだったようなので、早いうちに対応できて良かったです。

  2. アバター画像 名前:わいひら 投稿日:2019/02/08(金) 21:28:33 ID:9f69b7474

    こんにちは。
    Cocoonのご利用ありがとうございます!

    「一覧ページ(Index of)」の件ですが、サーバー側から割り当てられる初期URLみたいな?「******.mixh.jp」にアクセスすると、一覧になって見えるから、それを防ごうということですよね?

    ちょっと違うかもしれません。
    「******.mixh.jp/dirname/」のようなディレクトリーページのインデックスページを開いたときとかです。
    例えばこんなURL。
    https://blog.mixhost.jp/wp-content/plugins/jetpack/css/

    mixhostはデフォルトの仕様みたいですね。
    デフォルトで403でもいいような気もしますが。

  3. 名前:aki 投稿日:2019/02/09(土) 08:14:17 ID:5fd32df27

    ちょっと違いましたか(-_-;)
    難しくてよく分からないのですが、下のページのように「******.mixh.jp」にアクセスすると、他に運営しているURLが晒されて、特にアダルトサイトを運営していれば、不安になるようなことも書いてありました。アダルトサイト運営していなくても、あまりこういうのは嬉しくないことですよね

    初期ドメインにアクセスするとファイルツリー丸見え問題
    https://pera-lab.com/archives/1400#indexof

    レンタルサーバー二刀流という選択肢
    https://pera-lab.com/archives/1400#i-2

    できることはアクセスのない今のうちにやろうと思っています。

  4. アバター画像 名前:わいひら 投稿日:2019/02/10(日) 23:00:44 ID:1b048ed29

    「******.mixh.jp」こっちも確認したら、確かにそうでした。
    ドメインでサイトを作成したら、こういったサブドメインが作成されるのは知らなかったです。
    ディレクトリ内だけならまだしも、トップが丸見えなのは、困りますね。
    教えていただき、ありがとうございます!

  5. 名前:にゃん 投稿日:2021/03/03(水) 21:03:30 ID:16374f3b1

    この記事を拝見し自分も設定しておこうと思ったのですが、
    プライマリドメイン「◯◯mixh.jp」やサブドメイン「◯◯.◯◯mixh.jp」にアクセスすると「Index of/」が表示されずに、運営しているサイトが表示されてしまう(アドオンドメインになる)のですが設定が間違っているのでしょうか?

    これによりミックスホストで新しいドメインでサイトを作るときやSEOなどに不都合があるのではないかと不安になりコメントさせていただきました。

    同じような状況の記事が見当たらなく、原因がわかるのであれば教えていただけると幸いです。

    お忙しい中大変申し訳ございません。

  6. アバター画像 名前:わいひら 投稿日:2021/03/05(金) 22:33:19 ID:d4a5d3698

    「◯◯mixh.jp」や「◯◯.◯◯mixh.jp」にアクセスしたらそのようになるかと思います。
    WordPressをインストールした上で「◯◯mixh.jp/wp-content/uploads/」や「◯◯.◯◯mixh.jp/wp-content/uploads/」にアクセスしたとしても、Index ofにならないということでしょうか。

  7. 名前:にゃん 投稿日:2021/03/08(月) 16:28:34 ID:31618c640

    返信ありがとうございます。

    「◯◯mixh.jp/wp-content/uploads/」にアクセスすると404ページ。
    「◯◯.◯◯mixh.jp/wp-content/uploads/」にアクセスすると403ページになりました。

    akiさんがおっしゃっているように、「「******.mixh.jp」にアクセスすると、他に運営しているURLが晒されて、」
    と言うのが、トップ丸見えのIndex ofのページだと認識しているのですが、「******.mixh.jp」にアクセスしてもアドオンドメインの方(自分の場合は◯◯.com)にURLが切り替わってIndex ofのページがそもそも表示されない状態です。

    的外れな返信であったら大変申し訳ございません。

  8. アバター画像 名前:わいひら 投稿日:2021/03/16(火) 11:43:37 ID:199234519

    なるほどそういうことだったんですね。

    プライマリドメイン「◯◯mixh.jp」やサブドメイン「◯◯.◯◯mixh.jp」にアクセスすると「Index of/」が表示されずに、運営しているサイトが表示されてしまう(アドオンドメインになる)のですが設定が間違っているのでしょうか?

    以前確認したときは、サーバーの設定が有効だったので、デフォルトに戻して確認してみました。
    すると、おっしゃられているように「運営サイト一覧」が表示されました。
    この記事を書いているときは、ディレクトリのことしか気づいてなくて、「◯◯mixh.jp」の状態には気づいてませんでした。失礼いたしました。
    それにしても、このデフォルト状態は良くないですね。403をデフォルトにしておいてくれれば良いのに。