Согласно спецификации , заголовки Location, используемые в перенаправлении, требуют имя сервера
HTTP/1.1 301 Moved Permanently
...
Location: http://example.com/foo/baz/bar
Однако в 2012 году большинство веб-браузеров распознают относительный путь и перенаправляют вас на новое место, используя исходное имя сервера.
HTTP/1.1 301 Moved Permanently
...
Location: /foo/baz/bar
Есть ли какие-либо негативные / неожиданные последствия использования относительных URL в заголовках Location? Меня особенно беспокоит то, как Google / поисковые системы будут интерпретировать это, но если есть что-то еще, о чем я не думаю, я бы хотел услышать это.
seo
redirects
301-redirect
http
http-headers
Алан Сторм
источник
источник
Ответы:
В соответствии с текущей версией стандарта HTTP / 1.1, RFC 2616, значение
Location
заголовка должно быть абсолютным URI .Однако в проекте стандарта, подготовленном Рабочей группой HTTPbis для последующей замены RFC 2616, он был изменен, чтобы разрешить также относительные URI, по- видимому, потому что :
На практике AFAIK почти все основные браузеры и поисковые системы понимают и принимают перенаправления HTTP на относительные URL-адреса. Однако до тех пор, пока однажды черновик HTTPbis не станет официальным стандартом и получит широкое распространение, всегда будут какие-то новые или непонятные пользовательские агенты, которые реализуют текущий стандарт письма и принимают только абсолютные URL-адреса. Таким образом, сейчас безопаснее всего использовать абсолютные URL-адреса в
Location
заголовках, как это предусмотрено законом Постеля :источник
Раздел 14.30 RFC HTTP 1.1 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30 существенно не отличается. Я не знаю, что вы увидите какие-то реальные практические ограничения для этого.
Единственный раз, когда я видел даже предупреждение об этой проблеме, это когда я использовал для тестирования в Lynx, и местоположение не было абсолютным, оно предупреждает вас «Значение местоположения не абсолютное» - но если я правильно помню, оно все равно отпустит вас на новое место. Я только что протестировал Lynx 2.8.7 и похоже, что он больше этого не делает, хотя это может быть проблемой конфигурации.
Теперь вы говорите:
Я считаю, что это требует проверки. Я бы настроил URL, поместил бы его в xml sitemap вашего сайта и сделал бы этот URL-адрес перенаправлением, как вы описываете. Я думаю, что нужно проверить это с помощью Google Webmaster Tools и посмотреть, есть ли негативные последствия.
источник