Переадресация HTTP на HTTPS только для одного URL - PullRequest
3 голосов
/ 01 марта 2012

Интересно, кто-нибудь может помочь? Большое спасибо!

Проблема

Цель :

Мы пытаемся только перенаправить

Текущий код

Текущий код в web.config это. Застрял на <match url="(.*)">

Ниже приведено правило перезаписи.

<system.webServer>     
 <rewrite>
    <rules>
       <rule name="Redirect to https">
          <match url="(.*)" />
          <conditions>
             <add input="{SERVER_PORT}" pattern="443" negate="true" />
          </conditions>
          <action type="Redirect" url="https://www.example.com" />
       </rule>
    </rules>
 </rewrite>
<modules runAllManagedModulesForAllRequests="true"/>
<defaultDocument enabled="true">
  <files>
    <clear/>    
    <!--Remove this line or place below to deprecate-->
    <add value="default.aspx"/>
    <add value="index.html"/>
    <add value="index.php"/>
    <add value="default.html"/>
  </files>
</defaultDocument>

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

Измените <match url="(.*)" />, чтобы включить только example.com и www.example.com - сейчас вы соответствуете всем URL-адресам.

http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/

1 голос
/ 01 марта 2012

Попробуйте это:

<rule name="Rewrite HTTP to HTTPS" stopProcessing="false" enabled="false">
<match url=".*" />
<conditions>
    <add input="{HTTPS}" pattern="off" />
    <add input="{HTTP_HOST}" type=”Pattern” pattern="^(www\.)?example.com$">
</conditions>
<action type="Redirect" url="https://www.example.com{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />

...