Iis url rewrite module is required to install this application что делать
Microsoft Exchange Server 2016 setup can't continue because the local computer requires additional software to be installed.
Exchange 2016 setup (for September 2021 CU and later versions) requires IIS URL Rewrite Module 2.1 to be installed on the computer before installation can continue.
Microsoft Exchange Server 2019 setup can't continue because the local computer requires additional software to be installed.
Exchange 2019 setup (for September 2021 CU and later versions) requires IIS URL Rewrite Module 2.1 to be installed on the computer before installation can continue.
- Download and install: URL Rewrite Module version 2.1. Choose the x64 installer of any language.
- Select retry on the Readiness Checks page.
If this update requires a reboot to complete installation, you'll need to exit the Exchange 2016 setup, reboot, and then start Setup again.
If the URL Rewrite Module is uninstalled after setup, it may lead to unresponsive ECP/OWA.
Having problems?
Ask for help in the Exchange forums. Visit the forums at: Exchange Server.
igorsmolin
Диагностика (troubleshooting) правил модуля URL Rewrite в IIS.
Коллеги, приветствую! В этой статье мы поговорим о том, что происходит под капотом компонента URL Rewrite для IIS для целей диагностики. Разобравшись в этом вопросе на практике, мы сможем понять работу механизма, его логику, а также мы поймем как создавать правила таким образом, чтобы они не мешали работе друг друга. Вопрос необходимости проведения диагностики URL Rewrite будет становиться все более острым по мере возникновения дополнительных правил, а также по мере роста сложности этих самых правил.
Эта статья представляет собой перевод официальной документации Microsoft с добавлением небольших изменений от автора. Оригинальная статья доступна — здесь.
Подготовка тестового стенда
Разворачиваем виртуальную машину
Для целей тестирования предлагаю создать небольшой тестовый стенд из одной виртуальной машины. Для автоматизации этого процесса можно скачать или склонировать репозиторий на GitHub и выполнить предварительные шаги по установке.
Когда все будет готово, перейти в папку сценария Localhost_1.0 и выполнить команду:
Тестовый стенд будет развернут автоматически, пока что можно выпить чашечку чая или кофе. Конечно, вам никто не мешает развернуть это любым другим удобным способом.
Спустя время, виртуальная машина на базе Windows Server 2019 будет готова и мы сможем подключиться к ней либо через менеджер виртуальных машин VirtualBox, либо при помощи подключения RDP клиента по адресу 127.0.0.1:33389.
В качестве учетной записи для подключения указываем — Administrator. Пароль — vagrant.
Разворачиваем IIS
Переходим в процессу развертывания IIS.
После успешного входа в систему, запускаем Powershell от имени администратора и выполняем следующую команду:
Устанавливаем URL Rewrite
Теперь займемся установкой компонента URL Rewrite. Для этого переходим на эту страницу, скачиваем и устанавливаем модуль. После его инсталляции в диспетчере IIS появится раздел URL Rewrite.
Поздравляю, нам удалось развернуть тестовый стенд и установить необходимые компоненты. Теперь мы готовы к изучению механизма работы компонента URL Rewrte.
Создание тестовой станицы и простых правил
Как мы уже проверяли ранее, при обращении к сайту IIS, возвращается страница iisstart.html. Давайте создадим отдельную тестовую страницу. Для этого переходим в каталог %SystemDrive%\inetpub\wwwroot\ и создадим файл article.aspx со следующим содержанием:
Теперь сформируем пару правил для созданного сайта в IIS. Для этого создадим файл web.config в каталоге %SystemDrive%\inetpub\wwwroot\ со следующим содержанием:
Если все выполнено верно, то при нажатии на значок URL Rewrite в разделе нашего сайта мы увидим созданные правила.
Созданные нами правила достаточно несложные и реализуют простой функционал.
Тестовая страница для модуля URL Rewrite сообщает нам информацию об оригинальном URL, а также его модификации после применения правила Rewrite to article.aspx.
Как диагностировать URL Rewrite?
Наконец мы подошли к главной теме статьи — как диагностировать проблемы или получать журнал ошибок при конфигурации URL Rewrite? Для этого потребуется включить функционал Failed Request Tracing, а также создать правило, в котором мы укажем, что конкретно мы хотим фиксировать.
Конфигурация Failed Request Tracing
В диспетчере IIS, в нужном сайте переходим в раздел Failed Request Tracing.
Включаем трассировку неудачных запросов.
Теперь переходим в раздел конфигурации трассировки неудачных запросов.
Добавляем новое правило трассировки.
Выбираем весь контент для трассировки.
Указываем какие коды ответа необходимо фиксировать. В реальной жизни стоит указывать только те коды, которые вам возвращаются и которые необходимо диагностировать. В нашей статье мы укажем диапазон от 200 до 999.
Выберем поставщика информации для трассировки. В нашем случае это модуль URL Rewrite.
В итоге появиться созданное нами правило трассировки неудачных запросов.
На этом мы закончили конфигурацию трассировки. Теперь, после выполнения хотя бы одного запроса со стороны клиента, в каталоге %systemdrive%\inetpub\logs\FailedReqLogFiles будет сформирован новый журнал, содержащий подробности хода выполнения запроса.
Диагностика правил URL Rewrite
Имейте ввиду, что для каждого подключения будет создан отдельный лог. В наших тестовых условиях мы указали, что готовы журналировать соединения с любыми кодами ответа (от 200 до 999) для наглядности. Не стоит так делать на настоящих серверах.
Давайте откроем файл лога при помощи Internet Explorer и перейдем в режим компактного просмотра.
В этом логе нас интересует информация с 35 по 46 строки. Именно на этих событиях модуль URL Rewrite производил обработку подключения. Давайте подробнее остановимся сначала на строках 35-41 и разберем механизм работы первого правила, а потом на строках 42-46 и разберем механизм работы второго правила.
Диагностика первого правила
Напоминаю, что первое правило прерывает запрос, если имя запрашиваемого хоста отличается от localhost (35-41 строчки).
URL_REWRITE_START — Событие сообщает о старте работы URL Rewrite. Свойства события предоставляют следующую информацию:
- Request URL — запрашиваемый URL — «/article/234/some-title».
- Scope=»Distributed» сообщает о том, что правило было определено на уровне сайта, а не глобально, на уровне сервера.
- Type=»Inbound» — тип соединения — входящий.
RULE_EVALUATION_START — Событие сообщает о запуске механизма URL Rewrite для первого правила. Свойства события предоставляют следующую информацию:
- Rulename — имя правила.
- Request URL — запрашиваемый URL — «/article/234/some-title».
- PatternSyntax=»Regex» — для формирования шаблона правила используются регулярные выражения.
- StopProcessing=»false» — Последующие правила также будут применены, обработка не завершится на текущем правиле.
- RelativePath=»/» — правило определено на уровне сайта.
PATTERN_MATCH — Событие предоставляет информацию о том, как URL был сопоставлен с шаблоном правила. Свойства события предоставляют следующую информацию:
- Pattern=».» — шаблон правила. Под знаком точки понимается любой символ.
- Input=»article/234/some-title» — строка, которая проверяется шаблоном правила.
- Negate=»false» — в шаблоне не используется отрицание.
- Matched=»true» — входящий URL подходит под шаблон правила.
CONDITIONS_EVALUATION_START — Событие запускается, если входящий URL совпал с шаблоном правила. Свойства события предоставляют следующую информацию:
- LogicalGroupping=»MatchAll» — Режим группировки MatchAll подразумевает совпадение всех существующих условий правила.
CONDITION_EVALUATION — Событие предоставляет следующую информацию:
- Input=»» — входящая переменная имени хоста для подключения.
- ExpandedInput=»localhost» — понятное для человека имя хоста для подключения.
- MatchType=»Pattern» — тип определения соответствия. В нашем случае — шаблон.
- Pattern=»localhost» — шаблон для соответствия.
- Negate=»true» — в условии используется отрицание.
- Succeeded=»false» — итог выполнения условия. В нашем случае входящая строка не совпала с шаблоном.
CONDITIONS_EVALUATION_END — Событие сообщает о том, что условие не выполнено.
RULE_EVALUATION_END — Событие сообщает о том, что правило не выполнено.
Диагностика второго правила
Напоминаю, что второе правило перезаписывает URL, делая его более понятным и удобным для человека (42-46 строчки).
Чтобы не пролистывать статью наверх в поисках лога, дублирую изображение ниже.
RULE_EVALUATION_START — Событие сообщает о запуске механизма URL Rewrite для второго правила. Свойства события предоставляют следующую информацию:
- Rulename — имя правила.
- Request URL — запрашиваемый URL — «/article/234/some-title».
- PatternSyntax=»Regex» — для формирования шаблона правила используются регулярные выражения.
- StopProcessing=»false» — Последующие правила также будут применены, обработка не завершится на текущем правиле.
- RelativePath=»/» — правило определено на уровне сайта.
PATTERN_MATCH — Событие предоставляет информацию о том, как URL был сопоставлен с шаблоном правила. Свойства события предоставляют следующую информацию:
- Pattern=»^article/(1+)/([_0-9a-z-]+)» — шаблон правила. Под регулярным выражением понимается строка, состоящая из трех групп разделяемых прямым слешем. Первая часть начинается с article. Вторая имеет одну или несколько цифр от нуля до девяти. Третья часть содержит одну или несколько цифр от нуля до девяти, либо буквы от a до z.
- Input=»article/234/some-title» — строка, которая проверяется шаблоном правила.
- Negate=»false» — в шаблоне не используется отрицание.
- Matched=»true» — входящий URL подходит под шаблон правила.
REWRITE_ACTION — Событие сообщает о перезаписи URL. Свойства события предоставляют следующую информацию:
- Substitution=»article.aspx?id=&title=» — шаблон перезаписи URL, в соответствии с которым будут производиться изменения. Конструкции R:1 и R:2 обозначают номера групп в шаблоне правила.
- RewriteURL=»/article.aspx?id=234&title=some-title» — итоговый URL после применения правил перезаписи.
RULE_EVALUATION_END — Событие сообщает о том, что правило выполнено.
URL_REWRITE_END — Событие сообщает о завершении работы модуля URL Rewrite.
Диагностика запрещающего правила
Теперь давайте попробуем смоделировать ситуацию, где пользователь вводит URL, где хост будет отличаться от localhost.
Мы уже пробовали выполнять это действие ранее, но тогда мы еще не настроили трассировку неудачных запросов.
Перейдем в каталог %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1 и откроем файл fr000002.xml.
В этот раз нас интересуют строки 35-44. Именно в них зафиксированы события URL Rewrite.
Ключевым моментом для понимания является строка 42. В ней мы можем увидеть, что правило Fail bad requests было применено. В строке 39 описана логика принятия решения правилом.
Полученный адрес 127.0.0.1 не подошел к шаблону условия — localhost. Именно поэтому мы не смогли подключиться, соединение было прервано.
Итоги
Коллеги, в этой статье нам удалось развернуть тестовый стенд и наглядно, по шагам, посмотреть на то, как работает URL Rewrite. Мы получили базовое понимание работы логики и алгоритма принятия решений этого модуля. Теперь вопросы связанные с диагностикой URL Rewrite станут немного легче. Мы разбирали достаточно простые правила, в реальных задачах логи могут быть гораздо больше и сложнее. Напоминаю, что эта статья является переводом с авторскими дополнениями. Официальная документация доступна — здесь.
12 Answers 12
first of all you have to check if rewrite url works well, follow this sample tutorial:
and reinstall the module. Now you could see the URL Rewrite module in IIS manager while on the root node (Server node) as well as on website and web application nodes.
These redirection rules (from SO) then worked for me:
goto IIS manager->server node->application request routing cache->server proxy setting->Check enable proxy checkbox.
I spent a couple of hours solving this issue. There are steps I went through and got the rewrite module to work fine.
- Reinstall rewrite module. If you don't see this module in IIS and installed application list but rewrite installer says thar is is already installed go to registry ( HKLM/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/Uninstall ) and serach 'rewrite'. Find uninstall string and run it. It will remove rewrite module and you can install from scratch.
- Install Application Request Routing module for IIS.
- IMPORTANT! If you already have web.config with rules remove them. Create/add rules via IIS menu. This way IIS will activate ARP module that is important.
I just had a similar issue after a Windows Service 2008 to Windows Service 2012 update and although I haven't completely tested this, all I did was uninstall/re-install the rewrite module specifically.
Url rewrite does not install on windows 10 IIS 10
Because it took me hours to find the problem, I am posting this solution to my own answer so it will save someone else this work.
In short you have to change the major version of the IIS via the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\MajorVersion to 9 during installation and then back to 10 afterwards.
I would prefer this as an option you can select from the roles, but who knows.
This works for me. Thanks. Originally I thought it is in the control panel turn windows feature on and off, but it is not there. One needs to go to separate site to download it.Additionally, entering your username and password in the "Specific user: " field found in Default Web Site --> Right click Virtual Database Folder --> Advanced settings --> Physical Path Credentials --> Specific user: helped me like in this link that helped me as well. The top answer after following these directions from this forum and the original forum provided in the hyperlink helped me get my local host directory to work.
622 2 2 gold badges 7 7 silver badges 18 18 bronze badgesIssue: For me the link provide, failed to install URl Rewrite 2.1 on windows server 2016, IIS 10.0
Fix: Instead of this i have followed below steps which works perfectly.
@GeorgeBirbilis: This answerer explicitly said version 2.1 could not be installed for them. Maybe their environment is somewhat different from yours, where only version 2.1 works?After installing it you will notice a new icon in IIS for URL Rewrite:
and you will be able to use rewrite tag in your web.config
6,822 5 5 gold badges 66 66 silver badges 91 91 bronze badgesIn case, after installing IIS URL Rewrite 2.1, URL Rewrite option is still not visible at IIS Manager, check Jalpa Panchal's answer URL Rewrite not visible in IIS10.
3,897 3 3 gold badges 37 37 silver badges 47 47 bronze badgesIIS UrlRewrite is not working for IIS 8
I have just moved my website to new computer which uses IIS 8 from one has IIS 7.5. All but URL rewriting is working well. there is no error message than "HTTP Error 404.0 - Not Found" which I got. What I've only recognized is, there is an entry like RewriteModule (%SystemRoot%\system32\inetsrv\rewrite.dll) in website>modules setting page but, IIS 8 one has no same module. Even though I added same module to IIS 8, It didn't work. I'll be glad if I can have some suggestion about how to solve the problem. More info could be provided upon request..
Hope I could expressed what i mean properly.!
Thanks in advance,
ps: url rules work well..
Читайте также: