読者です 読者をやめる 読者になる 読者になる

mod_rewriteよくわからん。

Apache

XREAではmod_rewriteが使える!ということで頑張って活用しようとしているわけですが,これがなかなか難しい。
.htmlファイルが存在するときはそのまま表示,存在しないときはcgiを呼び出す,なんてことをしようとしている。リクエストされたURLが「/hoge/fuga.html」のように,直接htmlを指定しているような形式の場合は簡単に書けるのだが,「/hoge/」のように,ディレクトリを直接指定している場合に対応するのが難しかった。
なんとか書けたのだけど,これで正しいのかは分からない。

RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_URI} !^/(css|js|error|cgi-bin)/.*$
RewriteRule ^(.*\.html)$ /cgi-bin/comment/generate.rb/$1 [L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}index.html !-s
RewriteCond %{REQUEST_URI} !^/(css|js|error|cgi-bin)/.*$
RewriteRule ^(.*)/$ /cgi-bin/comment/generate.rb/$1/index.html [L]