2007年06月08日
Softbank 3G携帯で406 Not Acceptableエラーが出た場合
気付かないとかなりハマるのでちょっとメモ。PHPであるURLだけが、Softbank 3G携帯だと「406 Not Acceptable」エラーになってしまった場合、次のような理由があります。
・Apacheでmod_negotiationを有効にしている
・Apacheで該当ディレクトリのMultiViewsが有効になっている
・スクリプト hoge.php を hoge/parameter1/2.... のような形式でアクセスしている
これをやるとSoftbank 3G携帯でエラーになります。
2G携帯ではならないので結構気付くまでハマるんですね〜。
ようは拡張子が省略されているのでmod_negotiationの機能によって検索してくれるんですが、携帯側が余計な注文(Acceptヘッダ)を出すからエラーになってしまうのです。
解決方法はいくつかありますが、手っ取り早い方法としては.htaccess(or httpd.conf)に以下のような記述をすると解決できます。
<FilesMatch "^hoge$">これでハマっている方はお試しを。
ForceType application/x-httpd-php
</FilesMatch>
