さくらインターネットで.htaccess(Options -Indexes編)
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2008-02-23
さくらインターネットでは、アクセスしたディレクトリに DirectoryIndex で指定したファイルがない場合、そのディレクトリのファイル一覧を表示します。これは便利ではありますが、他人にも見れてしまうので、プライベートなサイトだとしても、制御しておく方が無難です。
これを制御するには、Apache で Options -Indexes を設定すればいいのですが、さくらインターネットでは .htaccess に Options が使えません。さくらインターネットのサイトでは DirectoryIndex にエラーページのファイルを追加する方法が紹介されていますが、そのディレクトリの特定のファイルに直接アクセスしたい場合は困ります。
http://localhost/gazou/ 配下に画像を置いている時、http://localhost/gazou/1.gif は見せたいけど、http://localhost/gazou/ にアクセスされた時は、ファイル一覧を表示させたくない場合などです。
そこで、ディレクトリ内に DirectoryIndex の対象である index.php を作成して、サイトのトップページにリダイレクトさせちゃいます。
(静的なエラーページを index.html で用意してもいいですが)
<?php
$url = "http://pakapaka.jp";
header("Location: $url");
exit();
?>
もっといい方法あるかなぁ?ってことで、結局、Apache の mod_rewrite で対応することにしました。まあ、こっちの方が素直なのですが、URL が書き換わってくれないので完全には納得できてないですが。
RewriteRule ^gazou/$ /
ディレクトリの中を見せないだけの制御の場合は、IndexIgnore を利用することもできますが、これもちょっと納得がいかないですね・・・。だけど、Apache の設定に自由度がない共有サーバの場合は仕方ないところです。
IndexIgnore *
関連記事
上記の記事に関連する記事(最新の10件)です。


