Apache の .htaccess で Multiviews オプションを使えるようにする
Apache の Multiviews を使ってみようとして、ちょっとはまった。少し調べた結果問題は解決したけど、解決方法について日本語の良い情報が見あたらなかったので、日記を書いてみた。
今日生まれてはじてjsonを返すプログラムを書いた。アクセス時の Unix Timestamp を返すだけの簡単な機能なので、言語は何でも良かったんだけど、サーバの負荷を考えとりあえずphpで書いた。ただ、今後は別な言語(perl とか ruby とか)にしたくなるかもしれないので、
ではなく
でアクセス出来るようにしようと思い、Multiviews を使えば出来るという情報を見たことがあったので、.htaccess に
Options +MultiViews
MultiviewsMatch Handlers
と書いてみた。そしたらうまくいかずエラーになり、ログには"Option Multiviews not allowed here"と出ている。httpd.conf で
AllowOverride All
と設定してあるのに何故?と思い、調べてみたら英語のページ http://mathiasbynens.be/notes/apache-allowoverride-all にたどりついた。
ここによると httpd.conf の設定を
AllowOverride AuthConfig FileInfo Indexes Limit Options=All,MultiViews
とすれば良いとのこと。これを試してみたらうまくいった。
上記URLのタイトル「Apache’s AllowOverride All doesn’t do what you think it does」は全く同感。