auでLocatiuonヘッダにフラグメント識別子を入れた場合の挙動
Location時にフラグメント識別子を付けられるのか?
d:id:maru_cc:20080207:1202385497
こちらで調べたやつだが、auが404エラーになるのが気になったのでもうちょっと調べてみた。
<?php header("Location: http://example.com/b.html#hoge");
とした場合、アクセスログにフラグメント識別子付きのURLで要求があった。
つまり、「b.html#hoge」というファイルを要求しに来ている。
なので、それでも結果が返るようにした場合にどうなるかやってみた。
a.php
<?php header("Location: http://example.com/b.php/b.html#hoge");
b.php
<html> <head> </head> <body> <pre> <?php var_dump($_SERVER); ?> </pre> hoge<br> hoge<br> ...繰り返し <a name="hoge" id="hoge">name_hoge</a><br> hoge<br> hoge<br> hoge<br> ...繰り返し </body> </html>
結果。
それぞれ端末上に表示された REQUEST_URIを見てみたところ、
A3011SAのみ、挙動が違う。
端末に搭載しているブラウザバージョンの違いだろうか。
LocationヘッダのURIにフラグメント識別子はNG
d:id:maru_cc:20080207:1202386973
こちらにも書いたがRFC的にどうやらNGのようなので、DoCoMoのN504iやA3011SAのように古い仕様から、RFC準拠に修正したのではないだろうか。