Переписать правило на HTTPS и WWW, кроме случаев, когда на локальном хосте - PullRequest
0 голосов
/ 12 марта 2019

Удалено предыдущее сообщение из-за моей невнимательности и размещено действующий домен.

У меня возникли проблемы при создании действующего правила Web.config, которое будет направлять трафик от http:// to https://www и http://www to https://www и https:// to https://wwwИСКЛЮЧИТЬ, когда на localhost или 127.0.0.1, пока я занимаюсь какой-то разработкой.

Web.config

<rewrite>
  <rules>
    <clear />
    <rule name="Redirect non-www OR non-https to https://www">
      <match url=".*" />
      <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}" pattern="^example.com$" />
        <add input="{HTTPS}" pattern="off" />
      </conditions>
      <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent"/>
    </rule>
  </rules>

Обновленное и рабочее правило, возможно, естьчто-то не так, что кто-то может указать?

<rewrite>
  <rules>
    <clear />
    <rule name="Enforce HTTPS" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAll">
        <add input="{HTTPS}" pattern="off" />
        <add input="{HTTP_HOST}" matchType="Pattern"
              pattern="^localhost(:\d+)?$" negate="true" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
            appendQueryString="true" redirectType="Permanent" />
    </rule>
    <rule name="Redirect example.com to www.example.com"
           enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="^[^www]" />
        <add input="{HTTP_HOST}" matchType="Pattern"
              pattern="^localhost(:\d+)?$" negate="true" />
      </conditions>
      <action type="Redirect" url="https://www.example.com/{R:1}"
           appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>
...