微软重写模块 - 强制万维网上的网址或网址删除WWW(Microsoft rewriting mod

2019-06-23 15:02发布

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

<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?

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

Answer 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"当然是可选的,但对于搜索引擎优化和大多数情况下我会推荐它。

也请看到这些SO问题/回答:

  • IIS7 URL重写-添加的“www”前缀
  • 转发http://mydomain.com/ctrlr/act/val到http://WWW.mydomain.com/ctrlr/act/val
  • 正确的方法使用IIS URL重写从地址删除WWW


文章来源: Microsoft rewriting module - Force www on url Or remove www from url