当記事執筆時点の2015年、さくらインターネットさんの .htaccess は Options Indexes の指定ができませんでした。

2018年11月 現在はこのルールが変わっており、次のサポート情報に従って設置亭を行えばよいようです。

さくらのサポート情報 レンタルサーバ アクセス制限 レンタルサーバ.htaccessによるアクセス制御 https://help.sakura.ad.jp/hc/ja/articles/206054622


さくらインターネットを利用し始めて半年程度経過するのですが、ずっとディレクトリが丸見えの状態だったため対処しました。

Apache ではディレクトリの中身が公開される仕様

Apache の仕様に次のものがあります。

「デフォルトファイルが見つからず、かつ Indexes がセットされているときはディレクトリの一覧を返す」

具体的には、こんな表示です。

Apache のディレクトリ表示
Apache のディレクトリ表示

これは 「オーナーが意図せずディレクトリが丸見えになってしまう」 ものです。
WEB エンジニアの恥かしい穴ですから、塞いでおくことを推奨します。

mod_dir
http://httpd.apache.org/docs/2.2/ja/mod/mod_dir.html

さくらインターネットでは .htaccess で Options が利用できない

さくらインターネットのレンタルサーバはちょっと癖のある制御がされています。

今回、一般的な慣例に従って次のように .htaccess を配置しました。
すると、ほぼ全ページで 500 Internal Server Error が発生してしまいました。

こういうトラブルは冷や汗が出ますね。

ダメだった .htaccess

1Options -Indexes

Options は利用できない

さくらインターネットでは Options の利用が認めれていません。
これはサポートの「 .htaccess によるアクセス制御」ページに明記されていました。

ファイル中にOptionsの指定は出来ません。

.htaccessによるアクセス制御|さくらインターネット公式サポートサイト
https://help.sakura.ad.jp/hc/ja/articles/206054622

対処法

以下、非公式Wikiを参考にしました。

http://faq.sakuratan.com/wiki/wiki.cgi?.htaccess

1DirectoryIndex index.html .ht

最終的に配置した .htaccesss

WordPress のサイトもありますので、最終的には以下を設置しました。

1DirectoryIndex index.html index.php .ht

DirectoryIndex は左から評価されます。
index.html の次に index.php を追加し、拾ってもらえるようにした感じです。

これで穴を防ぐことができました。