この記事は公開されてから1年以上経過しているため、情報が古い可能性がございます。
ご注意ください。

このWordPress pluginを配布しています

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

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

Apacheの仕様に、「デフォルトファイルが見つからず、かつ Indexesがセットされているときはディレクトリの一覧を返す」というものがあります。
Apacheのmod_dirのページには以下のように記載があります。

クライアントが、ディレクトリ名の最後に「/」 を指定してディレクトリインデックスを要求する場合に探すリソースのリストを DirectoryIndex ディレクティブで設定します。

art-apache_dir_index

Windowsマシンで、ディレクトリのパスをブラウザのアドレスバーに入れると、普通にこの画面が出るんですね。

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

参考

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

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

一般的な慣例に従って以下の.htaccessを配置したところ、ほぼ全ページで500 Internal Server Errorが発生してしまい冷や汗が出ました。

ダメだった.htaccessがコチラ

Options -Indexes

Optionsは利用できない

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

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

参考

.htaccessによるアクセス制御|さくらインターネット公式サポートサイト
https://help.sakura.ad.jp/app/answers/detail/a_id/2315

対処法

以下、非公式Wikiを参考にしました。
http://faq.sakuratan.com/wiki/wiki.cgi?.htaccess

DirectoryIndex index.html .ht

最終的に配置した.htaccesss

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

DirectoryIndex index.html index.php .ht

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

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

スポンサーリンク
ad_336
ad_336
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存