URLのLocationリダイレクトの時に#は使えないのか!

HTTPのRedirect(302)などでリダイレクトする場合、URLに#(シャープ)付きの場合失敗する。

http://hoge.hoge.jp/redirect.phpへアクセスする
>>index.html#topへリダイレクトする
という場合。


PC系のブラウザーだと動く場合も有るようですが、携帯ブラウザーの場合失敗します。
(失敗するというか、RFC的に無しなのでエラーにして正解だと思うが・・・)


redirect.phpはこんな感じ

<?
 header("Location: "http://hoge.hoge.jp/index.html#top");
?>

飛べない。(というか絶対URIとして正しくないのです)

AUはNOT FOUNDとなり、
SB/DoCoMoは#以降が無い形でリダイレクトされたりします。


どうしてもアンカー(#以降)を継承したい場合は、
http://hoge.hoge.jp/redirect.php#top

redirect.phpは#無しに

<?
 header("Location: "http://hoge.hoge.jp/index.html");
?>

とすると、何とかなるようです、リダイレクタで出し分けたいという欲求には答えられないみたいです。きちんと検証して居るわけではないですが、手元の3キャリア端末ではOKでした。

参考)
http://blog.koshigoe.jp/mt-tb.cgi/917

id:ApplePedlarさんアドバイスサンキューです。