Перенаправить на новый URL без браузера, выпустив второй запрос?
-
10-10-2019 - |
Вопрос
Есть ли способ для веб -сервера выпустить перенаправление, которое не требует, чтобы браузер выпустил второй запрос?
Например, браузер запросил 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
.
Если вы хотите проинформировать браузер, что, насколько я понимаю, загружается другая страница, вам нужен перенаправление.