Подтвердить что ты не робот

Microsoft переписывающий модуль - Force www на url Или удалите www из url

У меня есть общий план хостинга с Windows Server 2008 и IIS7.5, а также установлен и включен модуль перезаписи Microsoft.

<rewrite>
    <rules>
        <rule name="myRule" patternSyntax="Wildcard">
            <!--Rewriting code-->
        </rule>
    </rules>
</rewrite>

Итак, как перенаправить mydomain.com/everywhere-in-site/my-page.html на www.mydomain.com/everywhere-in-site/my-page.html с помощью модуля перезаписи Microsoft?

И что, если я хочу перенаправить www.mydomain.com/everywhere-in-site/my-page.html на mydomain.com/everywhere-in-site/my-page.html?

4b9b3361

Ответ 1

Чтобы удалить www из домена и перенаправить на "голый домен", вы можете сделать это в следующем фрагменте кода:

<rewrite>
  <rules>
    <rule name="Remove WWW prefix" stopProcessing="true">
      <match url="(.*)" ignoreCase="true" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^www\.yourdomain\.com$" />
      </conditions>
      <action type="Redirect" url="http://yourdomain.com/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

И наоборот (если вы предпочитаете это), чтобы перенаправить не-www к одному с www:

<rewrite>
  <rules>
    <rule name="Add WWW prefix" stopProcessing="true">
      <match url="(.*)" ignoreCase="true" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^yourdomain\.com$" />
      </conditions>
      <action type="Redirect" url="http://www.yourdomain.com/{R:0}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

redirectType="Permanent", конечно, необязательный, но для SEO и большинства сценариев я бы рекомендовал его.

См. также эти вопросы и ответы: