WordPressでもよくある、WebサイトのURLに拡張子(phpとかhtmlとか)を使わない仕様のサイトを作っていて、さくらのレンタルサーバーで動作確認してみた。すると、Internal Errorが表示されてしまった。
ローカルのMAMP環境なら全く問題ないのに、なぜ見られないのだろうかとエラーログを調べてみたところ、『.htaccess: Options not allowed here』というエラーが出ていた。
hatchesのOptions +FollowSymLinksが原因だった
エラーログからhtaccessの書き方になんか原因があるのがわかったので、Options +FollowSymLinksでぐぐってみるとどうやら以前別のレンタルサーバー会社で攻撃を受けたようで、この書き方ができなくなった様子。
以下のエントリーにあるように、セキュリティ上の問題があることがわかる。
Apache HTTPD: `Options -FollowSymLinks` は不完全 – ダメ出し Blog
Options +FollowSymLinksを消してアクセスしてみると、どうもうまくいかない(404エラーが出ている様子)
ってことでじゃあ代わりにどうすればいいの?ってことなのだけど、このオプションを消して、代わりに
AddType text/html .php
と記述することでアクセスができた。
対応しているサーバーとそうじゃないサーバーで挙動が変わるってのが結構めんどくさいのだけど、セキュリティ上仕方がないことなんでしょう。WordPress入れてそのまま使うことが多かったので、htaccessってあんまり触ったことなかったけど、なかなか奥が深そうなものですね。
参考:さくらのレンタルサーバーでphpファイルに拡張子無しでアクセスできなくなってしまった場合の対応について(404エラー) – akira3goの日記