Использование модуля переопределения URL-адресов 2.0
Введение
Этот раздел документации относится к перезаписи URL-адресов 2.0 для IIS 7.
Перезапись URL-адресов 2.0 для IIS 7 и более поздних версий — это добавочный выпуск, включающий все функции версии 1.1 и добавляющий поддержку расширяемости .NET и перезаписи исходящего ответа. В частности, его можно использовать для:
- Реализация сложной логики перезаписи с помощью поставщиков перезаписи, написанных в .NET
- Замените URL-адреса, созданные веб-приложением в HTML-коде ответа, на более понятный для пользователя и понятный для поисковых систем эквивалент.
- Измените ссылки в разметке HTML, созданной веб-приложением за обратным прокси-сервером.
- Исправьте содержимое любого HTTP-ответа с помощью сопоставления шаблонов регулярных выражений.
- Изменение заголовков HTTP-запросов и ответов и переменных сервера IIS.
Компоненты
Переопределение URL-адресов версии 2.0 включает следующие ключевые функции:
- Настраиваемые поставщики перезаписи (новые в RTW). Поставщики перезаписи могут использоваться, когда логика перезаписи URL-адресов не может быть выражена с точки зрения шаблонов регулярных выражений или когда требуется принимать решения о перезаписи на основе данных, хранящихся за пределами web.config файла (например, базы данных SQL или текстовых файлов). Поставщики перезаписи клиентов можно реализовать на любом языке .NET.
- Механизм перезаписи ответов на основе правил. Правила исходящего трафика используются для выражения логики того, с чем сравнивать части ответа и что делать, если сравнение прошло успешно. Администраторы веб-сервера и сайта могут использовать правила исходящего трафика для определения сложной логики перезаписи ответов.
- Перезапись содержимого определенных HTML-тегов. Вместо сканирования всего ответа на определенное совпадение можно настроить для просмотра только определенных html-тегов, таких как <a>, <img> и т. д. Таким образом, шаблон значительно упрощается, а процесс применения правила к содержимому выполняется гораздо быстрее по сравнению с применением шаблона ко всему ответу.
- Предварительные условия для правил для исходящего трафика. Применение правил перезаписи к каждому ответу является дорогостоящей операцией и не требуется в большинстве случаев. Предварительные условия используются для проверка метаданных ответа, чтобы определить, следует ли применять оценку правил для исходящего трафика.
- Перезапись переменных сервера и заголовков HTTP-запросов. Различные переменные сервера IIS и заголовки HTTP-запросов можно задать с помощью правил перезаписи.
- Перезапись заголовков HTTP-ответов. Правила перезаписи исходящего трафика можно использовать для изменения любых существующих заголовков HTTP-ответов или для задания новых.
- Список разрешений для переменных сервера. Чтобы правила распределенного перезаписи случайно или намеренно изменяли переменные сервера IIS, которые могут повлиять на безопасность или поведение среды выполнения веб-приложения, изменяемые переменные сервера теперь необходимо явно добавить в список разрешений.
- Функция HtmlEncode. При исходящем перезаписи часто используются ненадежные данные (например, строка запроса или заголовки HTTP) для создания строки замены для вставки в HTTP-ответ. В таких случаях функция HtmlEncode должна использоваться для предотвращения вставки клиентских скриптов в ответ, что может привести к уязвимости межсайтовых сценариев.
- Отслеживание групп записи в разных условиях правила. Логика обратной ссылки на условия в переопределении URL-адресов 1.1 работала только с последними соответствующими условиями. В версии 2 можно настроить логику обратной ссылки для работы со всеми соответствующими условиями.
- Шаблоны правил для оптимизации поисковой системы (новые в RTW). Три новых шаблона правил упрощают создание правил перенаправления, которые будут принудительно использовать канонические URL-адреса для веб-страниц на вашем сайте.
- Шаблон правила обратного прокси-сервера (новый в RTW). Этот шаблон можно использовать для быстрого создания правил перезаписи для входящего и исходящего трафика, реализующих конфигурацию обратного прокси-сервера.
- Ведение журнала перезаписанных URL-адресов. Правила перезаписи можно настроить для регистрации перезаписываемого URL-адреса в журналах IIS W3C, а не для записи первоначально запрошенного URL-адреса.
- Обновлен пользовательский интерфейс в диспетчере IIS. Пользовательский интерфейс был значительно улучшен, чтобы лучше представить конфигурацию модуля и упростить такие распространенные задачи, как настройка правил перезаписи и условий перезаписи.
Установка модуля
Скачайте переопределение URL-адресов 2.0, используя ссылки на домашней странице модуля по адресу https://www.iis.net/extensions/urlrewrite
Примечание
- Если предыдущая версия переопределения URL-адресов, например версии 1.0 и 1.1, уже установлена, она будет обновлена до версии 2.0.
- Если версия RC для переопределения URL-адресов 2.0 уже установлена, она будет обновлена до версии RTW.
Известные проблемы
- Перезапись ответа не работает со статическим сжатием. Чтобы использовать перезапись ответов, необходимо отключить статическое сжатие IIS.
- Правила для исходящего трафика не применяются к ответам с закодированным фрагментом передачи, если включен параметр rewriteBeforeCache . Присвойте параметру rewriteBeforeCache значение false, если необходимо перезаписать ответы, закодированные фрагментированными данными передачи.
Установка примеров расширяемости
Примеры расширяемости переопределения URL-адресов включают сборки .NET и исходный код, реализующие следующие поставщики:
- DbProvider — этот поставщик можно использовать для получения сопоставлений перезаписи из таблицы базы данных SQL Server путем выполнения хранимой процедуры;
- FileMapProvider — этот поставщик можно использовать для получения сопоставлений перезаписи, хранящихся в текстовом файле;
- FileContainsProvider — этот поставщик можно использовать для проверка, является ли какая-либо строка в текстовом файле подстрокой входной строки поставщика.
Скачайте примеры расширяемости переопределения URL-адресов из коллекции кода MSDN.
Использование модуля
В этих статьях рассматриваются функциональные возможности перезаписи URL-адресов версии 2.0 и объясняется, как использовать его для выполнения распространенных сценариев перезаписи.
Пошаговые руководства
- Использование настраиваемых поставщиков переопределения с модулем переопределения URL-адресов
- Разработка пользовательского поставщика переопределения для модуля переопределения URL-адресов
- Создание правил исходящего трафика для модуля переопределения URL-адресов
- Обратный прокси-сервер с переопределением URL-адресов 2.0 и маршрутизацией запросов приложений
- Использование правил исходящего трафика для вставки кода отслеживания веб-аналитики
- Настройка заголовков HTTP-запросов и переменных сервера
- Изменение заголовков http-ответов
- Шаблоны правил SEO
- Понятный URL-адрес — шаблон правила
- Обратный прокси-сервер — шаблон правила