Подтвердить что ты не робот

IIS UrlRewrite не работает для IIS 8

Я только что перевел свой сайт на новый компьютер, который использует IIS 8, у меня есть IIS 7.5. Все, кроме перезаписи URL-адресов, работают хорошо. нет сообщения об ошибке, кроме "HTTP Error 404.0 - Not Found", которое я получил. То, что я только узнал, есть запись, такая как RewriteModule (%SystemRoot%\system32\inetsrv\rewrite.dll) на веб-сайте > страница настроек модулей, но IIS 8 не имеет одного и того же модуля. Хотя я добавил тот же модуль в IIS 8, он не работал. Я буду рад, если у меня появится какое-то предложение о том, как решить проблему. Дополнительная информация может быть предоставлена ​​по запросу..

Надеюсь, я мог бы выразить то, что я имею в виду правильно.

Спасибо заранее,

Alper

ps: правила URL работают хорошо.

4b9b3361

Ответ 1

Прежде всего, вам нужно проверить, работает ли переписывающий URL-адрес, следуйте этому образцу:

http://www.iis.net/learn/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules

Если нет, откройте IIS8 и проверьте, отображается ли значок перезаписи URL. Если не скачать msi отсюда:

http://www.iis.net/downloads/microsoft/url-rewrite

и переустановите модуль. Теперь вы можете увидеть модуль URL Rewrite в диспетчере IIS, а в корневом каталоге node (Server node), а также на узлах веб-сайта и веб-приложения.

Надеюсь, что это поможет!

Ответ 2

У меня была аналогичная проблема после обновления Windows Service 2008 до Windows Service 2012, и хотя я не полностью ее протестировал, все, что я сделал, это удалить/переустановить модуль перезаписи.

Надеюсь, это поможет любому, у кого есть такая же проблема.

Ответ 3

У меня также была эта проблема. Как заметил OP, DLL не зарегистрирован. Установщик говорит, что все в порядке, значок перезаписи есть в диспетчере IIS, но он не работает. Проверьте DLL (см. Путь ниже). Используйте блокнот Microsoft, действительно, я НЕ шучу, это должен быть блокнот Microsoft, даже визуальная студия не будет работать для этого. Запустите блокнот как администратор и откройте C:\Windows\System32\inetsrv\Config\applicationHost.config

Добавьте следующую строку в <globalModules> node.

<add name="RewriteModule" image="%SystemRoot%\system32\inetsrv\rewrite.dll" />

Сохраните и попробуйте свои правила сейчас.

На самом деле это должен быть блокнот, если вы попробуете отредактировать applicationHost.config в 64-битной системе с чем-нибудь еще, вы будете тянуть свои волосы в течение нескольких часов. Одна из самых странных аномалий окон, которые я когда-либо видел. http://weblog.west-wind.com/posts/2008/Aug/09/Editing-Applicationhostconfig-on-64-bit-Win2008 http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

Ответ 4

Для меня моя перерисовка URL-адресов работала в IIS7.5, но не в IIS8

Проблема заключалась в шаблоне

В IIS7.5 у меня был шаблон, написанный как off

В IIS8 мне пришлось обновить его до ^OFF$

Ответ 5

Это помогло проверить и исправить правила перезаписи. Я знаю, что он работал раньше, и я не знаю, как его изменить.

Ответ 6

Я забыл добавить привязки для перенаправления доменов. Например. перенаправление на https://www.example.com обычно требует следующих привязок:

Эти правила перенаправления (from SO) затем работали на меня:

<rule name="Redirect from non www" stopProcessing="true">
    <match url=".*" />
    <conditions>
      <add input="{HTTP_HOST}" pattern="^example.com$" />
    </conditions>
    <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
  </rule>
  <rule name="Redirect from non https" stopProcessing="true">
    <match url=".*" />
    <conditions>
      <add input="{HTTPS}" pattern="^OFF$" />
      <add input="{HTTP_HOST}" pattern="^www.example.com$" />
    </conditions>
    <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
  </rule>

Ответ 7

Откройте диспетчер IIS > Сервеp > Модули > Настройте собственные модули В списке выберите RewriteModule и нажмите OK

IIS Config

Это работает для меня.

Ответ 8

Вы можете попробовать этот метод. После небольшого поиска в Google вы не единственный с этой проблемой → http://forums.iis.net/t/1173537.aspx/1

Ответ 9

Я не мог найти причину проблемы, но я только что решил ее сегодня с повторной установкой Windows Server и IIS 8.

Спасибо за ваш интерес и ценное время,

Alper

Ответ 10

Также проверьте: убедитесь, что этот параметр false, потому что иначе после перенаправления URL-адресов перезаписывается URL-адрес, приложение .NET может перенаправить его обратно.

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">

Ответ 11

Я потратил пару часов на решение этой проблемы. Есть шаги, в которые я прошел, и отлично переработал работу

  • Переустановите модуль перезаписи. Если вы не видите этот модуль в ISS и установленном списке приложений, но перезаписываете установщик, он говорит, что он уже установлен, перейдите в реестр (HKLM/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/Uninstall) и serach 'rewrite'. Найдите строку удаления и запустите ее. Он удалит модуль перезаписи и вы сможете установить его с нуля.

  • Установите модуль ARP для IIS.

  • ВАЖНО! Если у вас уже есть web.config с правилами, удалите их. Создайте/добавьте правила через меню IIS. Таким образом, IIS активирует важный модуль ARP.