は、このようなURLに302ステータスコードで応答を送信することが可能です:アンカー付きのURLにHTTPリダイレクトを送信できますか?
http://mysite.com/something/#somethingelse
は、このようなURLに302ステータスコードで応答を送信することが可能です:アンカー付きのURLにHTTPリダイレクトを送信できますか?
http://mysite.com/something/#somethingelse
PHPからそうすることに何ら問題はないように見える:
Header(
"Location: http://en.wikipedia.org/wiki/HTTP#Status_codes",
true,
302
);
はい。それはサーバーにハッシュを送信しないブラウザーで、それ以外の方法ではありません。
HTTP仕様に続いて、Location
header fieldの値は、absoluteURIの値である必要があります。そして、それは、(彼らはちょうどabsoluteURIでにabsoluteURIでから名前を変更)RFC 3986に応じて次のとおりです。
absolute-URI = scheme ":" hier-part [ "?" query ]
だから、理論的断片は、値の一部として許可されていません。しかし、ブラウザはそれを処理することができます。
はい、フラグメント識別子を使用できます。これはHTTP仕様の既知のバグです。
http://trac.tools.ietf.org/wg/httpbis/trac/ticket/6を参照してください。
厳密な意味で、RFC2616は、絶対URIの一部ではないため、ロケーションヘッダー値のフラグメントを許可しません。しかし、IETF's HTTP rewrite draftthis was fixedと。 http://www.greenbytes.de/tech/tc2231/redirects.html
だから、答えイスト:はい、あなたが場所ヘッダーのURIで断片を置くことができる最近
JulianはLocationヘッダ中のブラウザでは、URIのフラグメントをどのように処理するかを比較し(それが持つどのようなHTMLアンカータグの契約です)我慢します。
これを試しましたか? – innaM
あなたはどの言語を使用していますか? –
Webサーバー?あなたがmod_rewriteを使ってこれをやっているのであれば、#がエスケープされても動作しません。 – karim79