2015-12-15 8 views
5

У меня есть сайт example.org, на котором я сохраняю подсайты, такие как example.com/project1 и example.com/project2 и так далее. Мне нужен простой HTTP→HTTPS перенаправление только на некоторые из подсайтов, но не нужно писать его в кодефайле вручную.IIS URL-Rewrite: HTTP to HTTPS

Так что я нашел URL-Rewrite2 модуль и правила для него:

<rewrite> 
     <rules> 
      <rule name="Redirect to HTTPS" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTPS}" pattern="^OFF$" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> 
      </rule> 
     </rules> 
     </rewrite> 

Он работает в большинстве с одной проблемой: он перенаправляет от http://example.com/project1 к https://example.com/, так что Лоста подсайт URL части и любые арг.

Как это можно исправить?

UPD: использовали это правило

<rule name="Redirect to HTTPS" stopProcessing="true"> 
         <match url="(.*)" /> 
         <conditions> 
          <add input="{HTTPS}" pattern="^OFF$" /> 
         </conditions> 
         <action type="Redirect" url="https://{HTTP_HOST}{UNENCODED_URL}" /> 
</rule> 

Subsite перенаправляет обычно за исключением того, что аргументы дублирует. http://example.com/project1?page=2 превращается в https://example.com/project1?page=2&page=2. Что я делаю неправильно?

ответ

3

Совершено с помощью этого правила:

<system.webServer> 
    <rewrite> 
      <rules> 
       <rule name="Redirect to HTTPS" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{HTTPS}" pattern="^OFF$" /> 
        </conditions> 
        <action type="Redirect" url="https://{HTTP_HOST}{UNENCODED_URL}" appendQueryString="false" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 

Работает хорошо на подсайтами.

0
<rewrite> 
    <rules> 
      <rule name="Redirect to http" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> 
       <match url="*" negate="false" /> 
       <conditions logicalGrouping="MatchAny"> 
        <add input="{HTTPS}" pattern="off" /> 
       </conditions> 
       <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" /> 
      </rule> 
     </rules> 

добавить, что в разделе system.webServer