今回はmixhostをレンタルしている人にむけて、indexOfを非表示にする方法を紹介したいと思います。
原因
なぜindexOfが表示されてしまうかとそのディレクトリに表示するページがないからです。
もし、表示するべきページがあればそのページに飛ぶのですが、表示するべきページがないため、内部構造が丸見えになってしまうindexOfが表示されてしまうのです。
また、indexOfが見えてしまうのはサイトの脆弱性を露呈していることにもつながります。
勿論すでに表示するべきページができているのであれば、それをサーバーにアップロードすれば良いのですが、開発途中であったり、ドメインを取得したばかりだとそのようにはいきません。
そのため、今回はまだそのドメインで開発途中の方向けの内容となっております。
万能な方法
.htaccessを用いる
.htaccessはそのサイトの設定に関わるような重要な記述が書かれています。
そこに何らかの設定を加えることでindexOfも非表示にできるという考え方です。
具体的には
Options -Indexes
という記述を加えた.htaccessをindexOfが表示されてしまうディレクトリにアップロードします。
そうすると403エラーが表示され、アクセスが制限されます。
記述を加える場所は一番最後で大丈夫です。元々ある.htaccessを利用する場合他の記述を消さないように気をつけてください。
ちなみにwordpressだとwp-content/uploads
の中に.htaccessはございます。
.htaccessは重要な設定が書かれていることが多いので、FTPソフトを用いてローカル内にバックアップを残してから行うことをおすすめします。
簡単な方法(mixhost対象)
mixhostを利用している人は管理画面からこの設定を変更することができます。
まず、mixhostのコントロールパネル(Cpanel)に移動してください。
そうすると、「詳細」の中に「インデックス」の欄があると思います。そこをクリックしてください。
その中に public_htmlというディレクトリがあります。そこの右側の「編集」ボタンを押すと、4つの選択肢が出るのでそこで「インデックスなし」を選択すると同じ設定にできます。
まとめるとこうです。
Cpanel→詳細→インデックス→public_htmlディレクトリ→編集→インデックスなしを選択
これで.htaccessで設定したようにindexOfにアクセス制限ができます。
この方法の場合.htaccessファイルのバックアップを取らず、記述の変更をするという手間がないので楽です。