将www重定向到非www

时间:2014-07-21 17:59:04

标签: asp.net asp.net-mvc

我有以下内容将无www地址重定向到with-www地址:

<rewrite>
  <rules>
    <rule name="Hostname">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^www\.mydomain\.com$" negate="true" />
        <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
      </conditions>
      <action type="Redirect" url="http://www.mydomain.com/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

但是我知道我想以相反的方式重定向子域:

www.blog.mydomain.com would become blog.mydomain.com

我该怎么做?

谢谢你, 米格尔

3 个答案:

答案 0 :(得分:0)

可能这应该有效:

<rewrite>
  <rules>
    <rule name="Hostname">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^blog\.mydomain\.com$" negate="true" />
        <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
      </conditions>
      <action type="Redirect" url="//blog.mydomain.com/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

这会检查HTTP_HOST部分不是blog.mydomain.com还是localhost,如果不是,则重定向到blog.mydomain.com

答案 1 :(得分:0)

根据我上面的评论举例。

<rewrite>
  <rules>
    <rule name="Hostname">
      <match url="([a-zA-Z0-9]*.blog.mydomain.com)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^www\.mydomain\.com$" negate="true" />
        <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
      </conditions>
      <action type="Redirect" url="blog.mydomain.com" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

重要提示:需要注意的一点是,只有当您的服务器仍然接受www.blog.mydomain.com时,这才有效。由于这是一个重定向,这意味着托管此重定向的服务器实际上托管了www.blog.mydomain.com或* .blog.mydomain.com。如果不是,那么DNS记录将永远不会将浏览器路由到该站点。

答案 2 :(得分:0)

我认为您要求的是,如果任何域名在前面有www.,请将其删除。这很简单:

<rewrite>
  <rules>
    <rule name="Hostname">
      <match url="^www\.(.+)" />
      <action type="Redirect" url="http://{R:0}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>