Проблема в том, что на самом деле это не перенаправление. Когда вы набираете 'www.example.com'
в своем веб-браузере, браузер генерирует HTTP-запрос, подобный следующему:
GET / HTTP/1.1
User-Agent: curl/7.16.3 (i686-pc-cygwin) libcurl/7.16.3 OpenSSL/
0.9.8h zlib/1.2.3 libssh2/0.15-CVS
Host: www.example.com
Accept: */*
Обратите внимание, что он запрашивает документ с буквальным названием /
. Есть два возможных ответа от сервера:
HTTP/1.1 200 OK
(more headers)
Content...
И
HTTP/1.1 301 Moved Permanently
Location: (location of redirect)
(more headers)
(Optional content)
В случае № 2 вы можете получить местоположение перенаправления, поскольку оно фактически является перенаправлением. Но в случае № 1 сервер выполняет перенаправление: он видит запрос на /
и вместо этого подает содержимое для любой его индексной страницы (например, index.html
, index.php
, default.aspx
и т. Д.). Что касается вашего браузера, то это просто содержимое документа /
. Он не знает, что он был перенаправлен.