Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Введение
Модуль перезаписи URL-адресов в IIS 7 и выше предоставляет функцию импорта, которая значительно упрощает процесс преобразования правил Apache mod_rewrite в правила перезаписи URL-адресов IIS. В этом пошаговом руководстве вы используете функцию правил импорта, указанную в модуле перезаписи URL-адресов, для импорта нескольких правил mod_rewrite в файл конфигурации IIS. Если вы еще не скачали модуль перезаписи URL-адресов, это можно сделать.https://www.iis.net/downloads/microsoft/url-rewrite
Настройка пошагового сценария
Чтобы узнать, как преобразовать правила mod_rewrite и убедиться, что преобразованные правила работают правильно, вы реализуете распространенный сценарий применения канонических имен узлов для веб-сайта. В этом примере вы будете принудительно использовать www.mysite.com вместо mysite.comэтого, чтобы при выполнении запроса, использующего имя узла, отличное www.mysite.comот имени, можно перенаправить запрос на каноническое имя узла.
Запустите диспетчер IIS и нажмите кнопку "Веб-сайт по умолчанию".
В области действий щелкните привязки и добавьте новую привязку HTTP для порта 8088.
Рис. 1. Добавление новой привязкиС помощью Блокнот откройте
%SystemDrive%\windows\system32\drivers\etc\hostsи добавьте две следующие строки в конце файла:127.0.0.1 www_mysite_com 127.0.0.1 mysite_comОбратите внимание, что вы используете "_" вместо "." для разделителей домена. Это позволяет предотвратить попытку веб-браузера разрешить доменное имя с помощью dns-сервера.
Сохраните файл hosts.
Убедитесь, что имена узлов настроены правильно, открыв веб-браузер и перейдя на сайты
http://www_mysite_com/iisstart.htmи вhttp://mysite_com/iisstart.htm.
Преобразование правил mod_rewrite
Правила Apache mod_rewrite для применения канонических имен узлов:
#For sites running on a port other than 80:
RewriteCond %{HTTP_HOST} !^www_mysite_com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*) http://www_mysite_com:%{SERVER_PORT}/$1 [L,R]
#And for a site running on port 80
RewriteCond %{HTTP_HOST} !^www_mysite_com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www_mysite_com/$1 [L,R]
Чтобы преобразовать эти правила в формат перезаписи URL-адреса IIS:
Запустите диспетчер IIS.
Слева в области Подключение ions выберите веб-сайт по умолчанию.
Справа в представлении функций щелкните " Перезаписать URL-адрес".

Рис. 2. Перезапись URL-адресов
В правой части области "Действия " нажмите кнопку "Импорт правил".
Скопируйте приведенный выше пример mod_rewrite правил и вставьте их в текстовое поле "Переписать правила ".

Рис. 3. Правила для импорта
Вкладка "Представление дерева" в поле "Преобразованные правила " мгновенно отображает результат преобразования. Вы также можете щелкнуть вкладку "Представление XML", чтобы узнать, как правила хранятся в файле web.config.

Рис. 4. Преобразованные правила
Если вернуться к представлению дерева и выбрать узел там, будет выделена соответствующая директива правила mod_rewrite в текстовом поле "Переопределение правил ".

Рис. 5. Представление дерева
Обратите внимание, что во время преобразования правил были назначены имена по умолчанию. Чтобы изменить имена по умолчанию на что-то более понятное, выберите правило в представлении дерева, щелкните его правой кнопкой мыши и выберите "Переименовать " в контекстном меню.

Рис. 6. Переименование
Измените имя первого правила с ImportedRule1 на перенаправление на www_mysite_com:non-80. Измените имя второго правила с ImportedRule2 на перенаправление на www_mysite_com:80.
В области действий нажмите кнопку "Применить", чтобы сохранить преобразованные правила в файл конфигурации Web.config, а затем нажмите кнопку "Вернуться к правилам".

Рис. 7. Вернуться к правилам
Проверка преобразованных правил
Чтобы проверить правильность работы правил, импортированных из mod_rewrite форматирования, откройте веб-браузер и перейдите к одному из следующих URL-адресов:
http://localhost/iisstart.htmhttp://mysite_com/iisstart.htm
В обоих случаях веб-браузер перенаправляется в http://www_mysite_com/iisstart.htm.
Кроме того, если вы попытаетесь использовать любой из этих URL-адресов:
http://localhost:8088/iisstart.htmhttp://mysite_com:8088/iisstart.htm
Веб-браузер перенаправляется в http://www_mysite_com:8088/iisstart.htm.
Обратите внимание, что правила, импортированные из mod_rewrite, включили применение канонических имен узлов для веб-сайта. Поиск Bing покажет другие примеры правил Apache mod_rewrite.
Заявление об отказе
ВАЖНО. Модуль перезаписи URL-адресов пытается преобразовать правила Apache mod_rewrite в функционально эквивалентные правила перезаписи URL-адресов IIS. Однако не все правила mod_rewrite могут быть преобразованы из-за отличий архитектуры между Apache и IIS. Настоятельно рекомендуется изучить набор правил mod_rewrite, пока вы не узнаете его функциональные возможности перед началом процесса преобразования. Затем после преобразования в правила перезаписи URL-адресов IIS просмотрите и проверьте результат преобразования, чтобы убедиться, что соответствующий набор правил переопределения IIS предоставляет ту же логику перезаписи URL-адресов.
Обратите внимание, что можно преобразовать только правила, которые соответствуют синтаксису Apache mod_rewrite. Любые другие форматы правил перезаписи (например, ISAPI_Rewrite, Ionic ISAPI Rewrite, IISRewrite и другие) не распознаются или преобразуются неправильно.