Переадресация на новый URL без повторного запроса браузером? - PullRequest
0 голосов
/ 15 декабря 2010

Есть ли у веб-сервера способ перенаправления, при котором браузер не запрашивает второй запрос?

Например, браузер запросил http://www.mysite.com/lion, но сервер хочет, чтобы браузер изменил местоположение на http://www.mysite.com/jungle. Единственный способ, которым я знаю, как это сделать, - это отправить серверу код состояния 3xx с URL-адресом jungle, и браузер выдаст новый запрос для его получения.

Возможно ли, чтобы сервер доставил страницу jungle в ответ на запрос lion и просто сказал браузеру: «Установите свой URL на http://www.mysite.com/jungle»?

Ответы [ 2 ]

2 голосов
/ 15 декабря 2010

Да, это называется перезаписью URL. И Apache, и IIS имеют модули, которые позволяют это.

Для Apache в файле .htaccess или в вашем httpd.conf на виртуальном хосте:

RewriteEngine On
RewriteRule lion jungle [L]

Содержимое джунглей будет отправлено по запросу льва, без перенаправления.

1 голос
/ 15 декабря 2010

В ASP.NET вы можете использовать Server.Transfer (). Это приводит к тому, что для текущего запроса возвращается другая страница.

Обратите внимание, что браузер не знает, что происходит. Он по-прежнему будет отображать http://www.mysite.com/lion в адресной строке, даже если вы увидите содержимое из http://www.mysite.com/jungle.

Если вы хотите сообщить браузеру, что загружается другая страница, то, насколько мне известно, вам нужен редирект.

...