14

我有一个与 Windows Server 2008 和 IIS7.5 共享的托管计划,并且安装并启用了 Microsoft 重写模块。

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

那么,如何使用 Microsoft 重写模块将 mydomain.com/everywhere-in-site/my-page.html 重定向到 www.mydomain.com/everywhere-in-site/my-page.html?

如果我想将 www.mydomain.com/everywhere-in-site/my-page.html 重定向到 mydomain.com/everywhere-in-site/my-page.html 怎么办?

4

1 回答 1

37

要从域中删除 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 和大多数情况,我会推荐它。

另请参阅这些 SO 问题/答案:

于 2012-04-17T14:25:49.263 回答