Перенаправить на новый URL без браузера, выпустив второй запрос?

StackOverflow https://stackoverflow.com/questions/4447839

Вопрос

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

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

Возможно ли сервер доставить страницу jungle в ответ на lion запросить и просто скажите браузеру "Установите ваш URL http://www.mysite.com/jungle"?

Это было полезно?

Решение

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

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

RewriteEngine On
RewriteRule lion jungle [L]

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

Другие советы

В asp.net вы можете использовать Server.transfer (). Это приводит к возвращению другой страницы для текущего запроса.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top