Microsoft重写模块 - 在URL上强制www或从url中删除www

Mah*_*asi 14 asp.net iis-7 web-config url-rewriting url-rewrite-module

我有一个与Windows Server 2008和IIS7.5的共享主机方案,并且安装并启用了Microsoft重写模块.

<rewrite>
    <rules>
        <rule name="myRule" patternSyntax="Wildcard">
            <!--Rewriting code-->
        </rule>
    </rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)

那么,如何使用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怎么办?

Mar*_*erl 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>
Run Code Online (Sandbox Code Playgroud)

反过来(如果你愿意)将非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>
Run Code Online (Sandbox Code Playgroud)

redirectType="Permanent"当然是可选的,但对于搜索引擎优化和大多数情况我会推荐它.

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

  • 这个答案体现了SO应该如何.谢谢马丁. (2认同)