この間はできなかったけど、URLに/をつけてCGIにアクセスする方法が使えるようになった。この日記のURLは以前と同じだけど、yyyymmdd.htmlというURLへのアクセスに対して実はその都度CGIで内容を出力している。こうすることによって、各日の日記へのリンク元を日記のCGIで収集したりできるし、HTMLファイルを置かなくていいのでファイル数を少なくできる。
あるURLへのアクセスを別のURLへ渡すにはmod_rewriteというものを使うらしい。今回の設定内容は以下。.htaccessファイルに記せばOK。
RewriteEngine on RewriteBase /diary RewriteRule (.*)\.html$ index.cgi?$1
diaryディレクトリ中のファイル構成は以下。
diary/ .htaccess index.cgi style.css
多分この応用で、ファイルのダウンロード数をカウントするCGIとかもできそう。例えば、download/○○.lzhへのアクセスを受け取り、実際のファイルを出力するようにすればいい。見た目には普通のURLに見えるので便利。
気付いた点を少し。
AN HTTPDを使っている場合は、「オプション一般」の「CGI出力を検査」をチェックしておくと、CGIがエラーを起こしたときにブラウザ上に表示してくれる。
uttsu.comへのアクセスで、URLがディレクトリ名で終わっているときに最後に/をつけないと自動的にwww.uttsu.comのドメインへ接続される。uttsu.comとwww.uttsu.comは内容は同じなので問題はないのだけど、できたらuttsu.comに統一したいな。
このことについて調べてみたら、サーバーの設定で、www.uttsu.comがuttsu.comよりも前に記述されていることが分かった。多分、/がない場合は再度サーバーへ問い合わせになるけど、そのときにwww.uttsu.comを参照するようになっているのではないかな。
これを.htaccess等を使ってユーザー側で設定したり、www.uttsu.comかuttsu.comかどちらへのアクセスかを判断することができれば対処もできるのだけど、その方法ってないかな。