2010-11-08 2 views
1

Я использую плагин UrlRewrite IIS около месяца на нашем производственном сайте.Проблема IIS UrlRewrite

Я создал одно правило редиректа с помощью прилагаемого шаблона/мастеров, в результате конфигурация enrty выглядит следующим образом:

<rewrite> 
    <rules> 
     <rule name="CanonicalHostNameRule1" enabled="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="^www\.mycompany\.com$" negate="true" /> 
      </conditions> 
      <action type="Redirect" url="http://www.mycompany.com/{R:1}" /> 
     </rule> 
    </rules> 
</rewrite> 

Это не было нормально работает до сегодняшнего утра, когда сайт начал erroring с «слишком много переадресаций ». Насколько я знаю, ничто в конфигурации или инфраструктуре не изменилось.

Я отключил правило, и сайт снова стал функциональным (хотя явно без какого-либо перенаправления).

Затем я снова включил правило, и теперь все работает как ожидалось. Я не внес никаких изменений в правило, кроме как временно отключить его.

Любые идеи? Является ли плагин ошибкой?

+0

В какой структуре вы работаете? Я знаю, что были некоторые особенно неприятные ошибки с 1.1, которые требовали перезапуска IIS ... – dooburt

ответ

1

Я рекомендую устанавливать это вверх:

http://learn.iis.net/page.aspx/467/using-failed-request-tracing-to-trace-rewrite-rules/

Это может помочь вам отследить проблему, если вы снова начать получать «слишком много» направляет сообщение об ошибке.

+0

Спасибо Крис, я обязательно это сделаю. – sandy

0

Попробуйте другой код, у меня есть на моем веб и работать идеально:

<rule name="Canonical Host Name" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions> 
     <add input="{HTTP_HOST}" pattern="^yourdomain\.com$" /> 
    </conditions> 
     <action type="Redirect" url="http://www.yourdomain.com/{R:0}" redirectType="Permanent" /> 
    </rule> 

Объяснение простое: Match любой URL, полученные для обработки условие является то, что есть anydomaintext.extension (ваш домен и расширение) без префикса Перенаправить в тот же домен с полным префиксом и поместить весь URL.

Другие попытки были R: 1, но вышли из основного URL-адреса и не запускались. Образец от Руслани: http://blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx Я попытался использовать добавление www, но, наконец, воспользуюсь примером выше.

0

Исправление ниже работало для меня. Я обнаружил, что мое правило перезаписи было устаревшим. Другой домен изменил свою политику URL и теперь перенаправляет весь трафик от otherdomain.com до www.otherdomain.com

<action type="Rewrite" url="http://otherdomain.com/abc/{R:1}" /> 

в

<action type="Rewrite" url="http://www.otherdomain.com/abc/{R:1}" /> 

Вы видите разницу? Добавив «www», я исключил перенаправление другого домена. Я в основном просто соблюдал их новую политику.