2009-08-16 2 views
5

Можно ли отправить ответ с кодом 302 статуса в URL, как это:Могу ли я отправить HTTP-перенаправление на URL с якорем?

http://mysite.com/something/#somethingelse

+3

Вы попробовали? – innaM

+1

какой язык вы используете? –

+0

Веб-сервер? Если вы делаете это с помощью mod_rewrite, вы не сработаете, так как # экранированы. – karim79

ответ

2

Там, кажется, нет никаких проблем в этом от PHP:

Header(
    "Location: http://en.wikipedia.org/wiki/HTTP#Status_codes", 
    true, 
    302 
); 
1

Да. Это браузер, который не отправляет хэш на сервер, а не наоборот.

5

Следуя спецификации HTTP, значение для Location header field должно быть absoluteURI. А то, что в соответствии с RFC 3986 (они просто изменили название от absoluteURI к absoluteURI):

absolute-URI = scheme ":" hier-part [ "?" query ] 

Так теоретически фрагмент не допускается, как часть стоимости. Но браузеры могут справиться с этим.

2

С строгим чтением RFC2616 не допускает фрагменты в значениях заголовка местоположения, поскольку они не являются частью абсолютных URI. Однако с IETF's HTTP rewrite draftthis was fixed.

Недавно Julian поставить сравнение, как браузеры обрабатывают URI фрагментов (это то, что HTML якорь теги имеют дело с) в Location заголовка: http://www.greenbytes.de/tech/tc2231/redirects.html

Так что ответ IST: Да, вы можете поместить фрагменты в Location URI, заголовка ,