Web.config перенаправляет оба www and не www to https - PullRequest
0 голосов
/ 06 мая 2020

Мне удалось перенаправить www.example.com на https://example.com, но не одновременно www.example.com и example.com. Вот мой код для перенаправления обоих:

<rewrite>
  <rules>
     <rule name="Force www and non-www" stopProcessing="true">
     <match url="(.*)" />
     <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{HTTP_HOST}{REQUEST_URI}" pattern="www.example.com" />
        <add input="{HTTP_HOST}{REQUEST_URI}" pattern="example.com" />
     </conditions>
     <action type="Redirect" url="https://example.com/{R:1}" redirectType="Permanent"/>
     </rule>
  </rules>
</rewrite>

Кажется, ему нравится www option, потому что он терпит неудачу с обоими www and не- www or только с не-www. Что-то не так с кодом?

1 Ответ

0 голосов
/ 07 мая 2020

Во-первых, чтобы исключить влияние кеша браузера, мы всегда должны тестировать его в окне браузера в режиме инкогнито. Кроме того, перезапустите сервер, чтобы применить последние изменения. Google Chrome отключите протокол Http по умолчанию, обратите внимание, чтобы проверить фактический URL-адрес в адресной строке браузера.
Если мы просто хотим перенаправить Http на https, достаточно добавить переменную сервера {HTTPS} в соответствует протоколу Non-http.

        <rules>
    <rule name="Force WWW and SSL" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAll">
                    <add input="{HTTPS}" pattern="off" />
                    <add input="{HTTP_HOST" pattern="example.com|www.example.com" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>

Чтобы принудительно использовать префикс WWW, обратитесь к приведенному ниже правилу. Обратите внимание на режим шаблона.

   <rule name="Force www" enabled="true" stopProcessing="false">
        <match url="(.*)" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{HTTP_HOST}" pattern="^example\.com$" />
        </conditions>
        <action type="Redirect" url="https://www.example.com{REQUEST_URI}" />
    </rule>

Не стесняйтесь сообщить мне, существует ли проблема.

...