au で ErrorDocument 404 hoge が動かない罠。

シェアする

携帯向けページの作成したときに、404ページを独自に表示させようと思って対象のディレクティブに

ErrorDocument 404 /hoge.php

などと表記したのだけど、auだけは上手く動いてくれなかった。DoCoMoとSoftbankはちゃんと表示された。

どうやら au は 404 を返されたらページを表示せずに「ページが見つかりません」という旨のメッセージのみを出す仕様のようだ。これを行ってるのが端末毎なのかau共通の仕様なのかはしらないが、自分で指定したページが表示されないのは不満である。

これを回避するに以下の2通りを考えた。

1) ドキュメントの指定にURLを書く
これを行うと指定された URL へ 302 でリダイレクトする様になる。

ErrorDocument 404 http://example.com/hoge.php

2) 対象のスクリプトのヘッダーに200を明示的に表示
たとえばPHPでは以下のように書く。

$ cat hoge.php
<?php
header('HTTP/1.1 200 OK');

ページ無いのに200返していいんだろうか?と思うのだが、事情により(1)が使えなかった為(2)で対処した。

Sponsored Link

シェアする

フォローする