Справка по правилу модуля перезаписи URL IIS7 - PullRequest
0 голосов
/ 27 июля 2011

Я пытаюсь отключить HTTPS, когда кто-то попадает в корень моего сайта ...

Я хочу

https://www.domain.com/ 

для перенаправления на

http://www.domain.com/

но я также хочу ..

https://www.domain.com/secure.aspx

или любую другую именованную страницу не перенаправлять.

Вот то, что у меня есть, но я не могу заставить его работать.Я перепробовал тысячи способов и прочитал всю документацию и примеры IIS по этому вопросу, но не могу придумать волшебную формулу.

<rule name="Redirect Root Only to Non HTTP" stopProcessing="true"> 
   <match url="\.com/$" /> 
   <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
      <add input="{HTTPS}" pattern="on" />
   </conditions>
   <action type="Redirect" url="http://www.domain.com" appendQueryString="false" redirectType="Found" />
</rule> 

Ответы [ 2 ]

1 голос
/ 06 августа 2011

Я думаю, что это ваш ответ:

<rule name="Redirect to HTTPS" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{URL}" pattern="^.*\.aspx$" ignoreCase="true" />
    <add input="{HTTPS}" pattern="^OFF$" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
<rule name="Redirect to HTTP" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{URL}" pattern="^$" />
    <add input="{HTTPS}" pattern="^ON$" />
  </conditions>
  <action type="Redirect" url="http://{HTTP_HOST}/" redirectType="Permanent" />
</rule>
0 голосов
/ 27 июля 2011

Вы были близки .. за исключением фактического шаблона (который соответствует только части пути URL, а не имени домена).Правильный шаблон - ^$, что означает пустую строку, которая будет соответствовать ТОЛЬКО совпадению с корнем домена, например https://www.domain.com/.

. Полное правило будет:

<rule name="Redirect Root to HTTP" stopProcessing="true">
    <match url="^$"/>
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTPS}" pattern="on"/>
    </conditions>
    <action type="Redirect" url="http://www.domain.com/" redirectType="Permanent"/>
</rule>
...