読者です 読者をやめる 読者になる 読者になる

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準拠に修正したのではないだろうか。