z3dom
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Тоже вопрос по URL Rewrite: есть IIS, на нем крутятся два сайта host.ru и old.host.ru. Движки сайтов разные. 1) Задача стоит, чтобы общение с посетителями шло через host.ru. Т.е. если запрашиваетс host.ru/A - выдавалось содержимое с host.ru, а если host.ru/B - то выдавалось содержимое с old.host.ru/B,но в адресной строке у посетителя виден host.ru/ Эта задача достаточно легко решена. Настроено глобальное правило переопределения (rewrite) и при запросе host.ru/B идет переопределение на old.host.ru/B. Все хорошо. Также обращаю внимание, что установлен флаг "Остановить обработку последующих правил". 2) Но теперь есть еще одна задача, чтобы если пользователь напрямую запрашивает old.host.ru/B, то его надо сначала отправить 301-м редиректом на host.ru/B, а потом уже ему методом переопределения выдается содержимое old.host.ru/B. У пользователя же в адресной строке видно именно host.ru/B. По простой логике добавляем глобальное правило перенаправления (redirect) с old.host.ru/B на host.ru/B. По моему пониманию схема должна работать очень просто: если пользователь запрашивает host.ru/B - срабатывает правило 1), если запрашивает old.host.ru/B - срабатывает правило 2),а затем уже правило 1). Но что-то пошло не так. В результате запроса к host.ru/B возникает ошибка "циклическая переадресация", т.е. выполняется сначала правило 1) затем 2), затем 1), затем 2) и т.д. Несмотря на то, что флаг "Остановить обработку последующих правил" установлен. Подскажите, как можно разрешить данную ситуацию? Возможно поменять правила местами, перенести их из глобальных в локальные правила сайта и т.п. А также возможно добавить какое-то условие, которое по какой-то серверной переменной (вот только не знаю какой) будет определять осуществляется ли запрос к old.host.ru/B с сервера в результате работы правила переопределения (и тогда редирект не должен срабатывать), либо запрос идет от пользователя (тогда должен). |