.htaccess活用法(9)

.htaccess(拡張子がhtaccessということで、ドットが必要です。ファイル名がないので最初戸惑いますが、こういうものだと思ってください。)が利用可能だと、

9.index.cgiやindex.phpをトップページにする方法

携帯用サイトとPC用サイトを同時に運営していて、宣伝するトップページを一本化したいケースは結構あると思います。

http://www.example.com     ← PC用サイト
http://www.example.com/i/ ←携帯用サイト

としても悪くはないですが、一本化できればそれに越したことはないケースもあるでしょう。

このような場合に、アクセスしてきた端末が携帯かパソコンなのかを判別する必要があります。携帯端末ではJavascriptは使えませんので、端末(ユーザーエージェント)の判別はCGI(perl)やPHPなどのサーバサイドで動くプログラムで判別する必要があります。しかし、これだと、

http://www.example.com/index.cgi
or http://www.example.com/index.php

がトップページとなります。これでは、トップページのURLが長すぎます。かえって二つに分けたほうが良いことになってしまいます。

ここで、http://www.example.comにアクセスした場合に、実際にはindex.cgiやindex.phpが表示されれば良いことになります。これも、.htaccessで可能なんですよ。

DirectoryIndex index.html index.cgi index.php index.shtml

と書くと、「/(スラッシュ)」止めのURLでアクセスされた場合に表示させるファイル名の優先順位を指定できます。つまり、上のような設定をしている場合は、index.htmlがそのディレクトリー内にあれば、「/(スラッシュ)」止めのURLでのアクセス時にindex.htmlのコンテンツが表示されますが(http://www.example.comでアクセスしてもhttp://www.example.com/index.htmlでアクセスしても同一のコンテンツが表示されるということ)、index.htmlが無ければindex.cgiを探しに行き、さらに、それが無ければ、index.phpをと見ていきます。列挙されているファイル名全て見て、どれも存在しなかった場合で、かつ、「Options Indexes」がonに設定されている場合は、そのディレクトリー内のファイル一覧が表示されますので、注意が必要です。「Options Indexes」をonにする場合の危険性については、こちらでも説明していますので、参照してください。

--広告--
【PR】 IP分散サーバー

【PR】 法人専用、簡単操作で大容量ファイル送信!
国内データセンターによる高速転送と堅固なセキュリティ
【DirectCloud-BOX】


このindex.cgiやindex.phpあるいはindex.shtmlをトップページにしたいというケースは、上で挙げたような携帯サイトPCサイトの住み分けという用途以外にも結構あると思います。クッキー情報を取得し、動的にデータベースなどから取得して、ユーザーごとにカスタマイズされたページを表示させたいケースもあるでしょう。

もちろん、あなたが利用しているサーバで既にindex.cgiやindex.phpでもトップページとして表示できるようになっているならば、改めて設定する必要はありません。念のため。


   「ディレクティブ」とは「命令」の意味。

▼ DirectoryIndex ディレクティブ
http://httpd.apache.org/docs/mod/mod_dir.html#directoryindex

▼ Options ディレクティブ
http://httpd.apache.org/docs/mod/core.html#options


次のページでは、MIMEタイプの設定をちゃんとしていないと思わぬセキュリティホールになる可能性について解説します。