пример, ЧТО у вас работают Два* сервера: NVBizNet. com И NVBizNet. com, И ВЫ ХО —
Глава 11. Активные серверные страницы (ASP) 57 1
тите равномерно распределить нагрузку между ними для увеличения общей про — изводительности. Поэтому вы переместили часть сайтов с сервера NVBizNet. com
на NVBizNet. com. Но посетители могли ранее установить закладки на домашние страницы сайтов на первоначальном сервере (NVBizNet. com). Для перенаправле- ния посетителей, которые пытаются на сервере NVBizNet. com найти сайты, кото —
рые находятся уже на Nv^izNet. com, нужно в начале ASP-страниц, расположен — ных на NVBizNet. com, вставить следующий код:
При ВЫПОЛНеНИИ ИНТерпретаТОрОМ Сценариев Метода Response. Redirect ОН
действует немедленно. Обработчик сценариев больше не обрабатывает никаких операторов на текущей ASP-странице. Вместо этого сервер посылает браузеру со — общение с указанием запросить другую Web-страницу. Значит, в нашем примере браузер сначала посылает сообщение на NVBizNet. com с запросом некоторой ASP-страницы. Но вместо того, чтобы послать браузеру страницу (находящуюся
теперь на другом сервере), сервер NVBizNet. com посылает сообщение о перенап —
равлении, согласно которому браузер должен запросить файл default. as p с сер- вера NVBizNet. com. После чего браузер запрашивает и отображает домашнюю
страницу default. as p уже с нового сервера.
Кроме отсылки посетителя на сайт, находящийся на другом Web-сервере, или
на другой сайт на том же сервере, метод Response. Redirect можно использо —
вать и для отсылки посетителя с одной страницы на другую в пределах одного и
того же сайта. Если новая страница, которую должен получить браузер, нахо — дится на том же сайте, то из URL-адреса, указываемого в методе
Response. Redirect, потребуется убрать «http:// » и доменное имя сервера, тог —
да адрес новой страницы получится относительным. Пусть, например, вы хотите запретить посетителям сразу заходить на ASP-страницы, предназначенные толь —
ко для зарегистрированных пользователей — в обход формы ввода имени и паро — ля. Тогда в начало каждой ASP-страницы, которую вы хотите защитить подоб — ным образом, необходимо вставить код наподобие следующего:
If ucase(wwwReferer) <> «HTTP://WWW. NVBIZNET. COM/HWDTT/» And _
ucase(referer) <> «HTTP://NVBIZNET. COM/HWDTT» Then
Response. Redirect «/loginScreen. asp» End If
%>
Если посетитель вводит URL-адрес Web-страницы в адресной строке брау —
зера или выбирает страницу из списка «Избранное» (или закладок), то «HTTP_REFERER» в посылаемом браузером HTTP-запросе содержит пустое зна — чение. Если же посетитель щелкнул на гиперссылке, браузер посылает серверу
HTTP-запрос, в котором значение «HTTP_REFERERM равно URL-адресу Web —
странйцы, содержащей эту гиперссылку. Таким образом, если в предыдущем примере посетитель обращается к Web-странице после ввода пароля (в форме
57 2 Глава 11. Активные серверные страницы (ASP)
авторизации) или в результате щелчка на гиперссылке на любой другой
странице, находящейся в папке /hwdtt сервера NVBizNet. com, то вызов мето —
да Request. ServerVariables вернет СТрОКу, начинающуюся С http:/ /
www. NVBizNet. com/hwdtt/ ИЛИ http://NVBizNet. com/hwdtt/:
Request. ServerVariables(«HTTP_REFERER»)
Этот оператор возвращает значение MHTTP_REFERER», которое браузер вставля —
ет в HTTP-запрос, отправляемый Web-серверу.
Чтобы использовать приведенный выше сценарий на своих Web-страницах,
подставьте в оператор i f адрес и путь к папке, содержащей информацию для за- регистрированных пользователей. Кроме того, в предпоследней строке сценария
URL-адрес, передаваемый методу Response. Redirect, необходимо заменить
URL-адресом страницы авторизации вашего сайта.
ПОСКОЛЬКУ метод Response. Redirec t ДЛЯ указания, ЧТО браузер ДОЛЖен Обра — титься к другой Web-странице, использует заголовок HTTP-сообщения, то этот метод может быть вызван сценарием только если выходной буфер HTML пуст (или содержит лишь HTTP-заголовок). Если требуется перенаправить браузер на