Перезапись URL Принудительно https, кроме одного домена - PullRequest
0 голосов
/ 09 июня 2018

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

  1. У меня есть 2 домена для моего сайта, например: (foo.com) и (bar.com)
  2. Мне нужен домен foo.com для перенаправленияHTTPS
  3. Мне нужно, чтобы bar.com оставался на своем HTTP и НЕ перенаправлял на HTTPS

Я перепробовал много правил, но ни одно из них не выполнило свою работу.например:

<rule name="Force HTTPS" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^(www.)?bar.com$$" ignoreCase="true" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>

1 Ответ

0 голосов
/ 11 июня 2018

Это должно перенаправить foo.com на HTTPS:

<rule name="Add WWW prefix to foo.com and use HTTPS" stopProcessing="true">
     <match url="(.*)" ignoreCase="true" />
      <conditions>
          <add input="{HTTP_HOST}" pattern="^foo\.com" />
      </conditions>
      <action type="Redirect" url="https://www.foo.com/{R:1}" redirectType="Permanent" />
 </rule>

И для bar.com:

<rule name="Force NonHTTPS" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTPS}" pattern="on" />
    </conditions>
    <action type="Redirect" url="http://{HTTP_HOST}/{REQUEST_URI}" />
</rule>

Взгляните на атрибут stopProcessing в первом правиле.Он должен прекратить обработку следующих правил, когда foo.com будет сопоставлен.Это не позволит сработать правилу «Force NonHTTPS».

...