Перезапись URL-адреса IIS не работает

У меня проблема с модулем перезаписи iis. Я гуглил и искал слишком много, но моя проблема все еще существует.

У меня есть два правила перезаписи: первое перенаправляет любой HTTP-запрос на https-эквивалент, а второе перенаправляет некоторые определенные страницы на другую страницу.

HTTP-запросы успешно перенаправляются на https, но второе правило не работает должным образом.

<rewrite>
  <rules>      
    <rule name="redirect special page" stopProcessing="true">
      <match url="(.*)MySite.com/accountTransactions" />
      <action type="Redirect" url="MySite.com/404.html" />
    </rule>
    <rule name="HTTP to HTTPS redirect" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
      </conditions>
      <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
    </rule>
  </rules>
</rewrite>

Я использую IIS 8, Windows Server 2012 R2.

что случилось ?


person Omid Shariati    schedule 28.04.2015    source источник


Ответы (1)


match url не должно содержать имя домена, а путь

<match url="^accountTransactions" />

См. http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

Если вам нужно сопоставить путь в определенном домене (когда ваш сайт имеет несколько доменных имен), вам следует добавить условие для {HTTP_HOST}

<conditions>
   <add input="{HTTP_HOST}" type="Pattern" pattern="^www\.mysite\.com$"> 
</conditions>
person user2316116    schedule 28.04.2015