Исключение из правила SSL в ASP.NET web.config - PullRequest
2 голосов
/ 12 января 2012

У меня есть сертификат SSL, и я настроил правило перезаписи в моем файле web.config, чтобы направлять весь трафик на https.Это работает нормально (код ниже, если кто-то посчитает это полезным), однако теперь у меня есть служба, которую я предоставляю своим телефонным клиентам, и я НЕ хочу, чтобы она использовала HTTPS.

Могу ли я создать исключение?Поэтому любой запрос на www.mydomain.com/PhoneService/Seek.svc не перенаправляется на https://www.mydomain.com.....

<rewrite>
      <rules>
          <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>

1 Ответ

4 голосов
/ 12 января 2012

Вы можете использовать другое условие в своем правиле, чтобы гарантировать, что путь не заканчивается seek.svc:

<rules> 
  <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions>
        <add input="{HTTPS}" pattern="off" />
        <add input="{URL}" pattern="seek\.svc$" ignoreCase="true" negate="true" /> 
      </conditions> 
      <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" /> 
  </rule> 
</rules>

Строка:

<add input="{URL}" pattern="seek\.svc$" ignoreCase="true" negate="true" /> 

проверяет URLпеременная и заканчивается seek.svc.Мы отменяем условие, потому что хотим, чтобы правило применялось только в том случае, если оно не соответствует.

...