1
ErrorDocument 404 と Google
この日記をさくらのレンタルサーバに移して以来、mod_rewrite が使えない関係で動的コンテンツを静的な .html ファイルに見せかけるために ErrorDocument 404 を使った飛ばしを使っていたのだが、どうもこれだと Google がちゃんとページ収集 / AdSense の表示をしてくれないっぽい。考えてみれば robot がアクセスに来て 404 を受取れば、そりゃこのページは無いものだとして無視するのが普通の挙動というものだ。
2
mod_actions, Action directive
tDiary で
html_anchor.rb を使う場合、mod_rewrite の次善策は mod_actions の Action directive らしい。
さくらレンタルサーバFAQ を見ても、Action は問題なく使えるようだ。と言うことで早速
<Files ~ ".*\.html">
Action text/html /d/index.cgi
</Files>
などとしてみたが、どうやらこれは実在しないディレクトリのファイルについては効かないようで、/d/archives/2004/12/25/001.html などのように階層表示にしているうちの場合は結局 404 が返ってしまうようだ。
apache 2.1系 の mod_actions だと [virtual] と言う Option が取れるので、もしかしたらこれで行けるのかも知れないが、2.0, 1.3系には無い。空のディレクトリを予め大量に掘っておけば回避できそうだが、あまりにスマートさに欠ける気がする。
3
Redirect permanent
仕方がないので一時的に archives/, category/ 以下のファイルは全て Redirect で CGI の動的パラメータ URI に飛ばすことにしたが、これだと Permalink と実際の Location URI が変わってしまうのが気持ち悪い。なにかうまい方法はないものか。ディレクトリを掘らずにフラットに html を置く構造にすれば良いのだが、今までの URI を変更するのもしゃくにさわる(CGI に Redirect している時点で既に破綻しているのだけど)。いっそ /d 自体を cgi にしてしまう手はあるのかな。どのみち mod_rewrite を使えれば何も悩まずに万事解決なのだが。