さくらインターネットサーバーで Index of を表示させないようにする方法
レンタルサーバーのさくらインターネットサーバーでは、ドメインのルートのアドレスへアクセスすると、次のように Index of が表示され、ファイルの一覧が丸見えになってしまいます。
しかもこの画面を辿って、フォルダやファイルの中身が見えてしまいます。もしもこのルートフォルダに index.html や index.php といったインデックスページのファイルがアップロードされていれば問題ありませんが、基本的に全てのフォルダにインデックスファイルを配置することはありません。
見られても問題ないファイルであればそのままでも良いのですが、ブラウザから直接ファイルリストやファイルへアクセスできる状況は、セキュリティの面でも良い状況とは言えません。
なぜ Index of のページが表示されるのか
Web サーバーである Apache の仕様と言ってしまえばそれまでなのですが、インデックスファイルが存在しない場合、エクスプローラーのようにファイルリストが表示される仕組みになっています。一般的なレンタルサーバーでは閲覧禁止の 403 Forbidden エラーが表示されます。
しかし、さくらのレンタルサーバーでは、このような制御は行われておらず、ファイルリストが表示されてしまうのが初期設定となっているようです。また、さくらの場合 httpd.conf を編集することも出来ず、更には .htaccess におけるオプション設定による一括変更も行うことができません。
さくらインターネットサーバーで Index of を表示させない方法
全てのフォルダにダミーの index.html ファイルを配置する
設定周りをいじらず設定する簡単な方法は、Index of のリストを見せたくない全てのフォルダにインデックスファイルを配置してしまうことです。設定を変更するのがよくわからない人は、この方法が一番安全かつ簡単な方法になります。
このような感じの index.html ファイルを作成して、各フォルダにアップロードすれば完了です。意味の無いページなので、検索サイトに表示されないように念のため noindex を設定しています。
<!DOCTYPE html> <html lang="ja"> <head> <title>Index</title> <meta name="robots" content="noindex,nofollow"> </head> <body> </body> </body> </html>
上記ファイルを zip ファイルで圧縮したものを置いておきます。解凍した上でご利用ください。
既にインデックスファイルが格納されている場合、ファイルを上書きしないように気を付けてください。
ファイルマネージャーでアクセス制限をする
続いてインデックスファイルを用意せずに、さくらの機能を用いてアクセス制御を行う方法になります。
さくらのファイルマネージャーを利用すれば、インデックスファイルが無い場合にアクセス拒否設定を行うことができます。まずはさくらのコントロールパネルへアクセスしログインしてください。
右のツリー上にある [ファイルマネージャー] を開きます。
右側にファイル一覧が表示されますが、そちらは何も選択せず、画面上部にある [表示アドレスへの操作] から [アクセス設定] を選択します。
[/ のアクセス設定] 画面がポップアップします。ここで [index ファイル] のタブを選択してください。すると以下のようなインデックスファイルリストが表示されます。(過去に何かしら操作された場合は、ここのリスト表記が異なる場合があります。)
下の方にファイルが存在しない場合の動作を設定する箇所があります。現在は [フォルダ内の一覧を表示] が選択されています。これが Index of を表示させている正体です。ここで [アクセスを拒否する] を選択すれば設定完了です。
確定する前に、上記の index ファイル一覧で不足分があれば追記するようにしてください。ここに載っている拡張子 html、htm、shtml、php、cgi を記載しておけば問題ないでしょう。
この設定を行うと、Index of の一覧が表示される代わりに 403 エラーである Forbidden が表示されるようになります。今回の設定はルートフォルダへ行っているため、下位のフォルダへも同様に適用されるので、他のフォルダへ対する設定を行う必要はありません。
アクセス拒否設定後はページがきちんと表示されなくなると困るので、きちんと動作するか必ず確認するようにしてください。
以上、さくらインターネットサーバーで Index Of の画面を表示させないようにする方法でした。