如何将asp.net默认子域设置为www?

时间:2012-07-08 16:26:06

标签: asp.net

如果有myws.com网站,如果我要求myws.com或www.myws.com,我会看到同一个网站

我想要的是在申请'myws.com'时重定向到'www.myws.com'

由于

2 个答案:

答案 0 :(得分:0)

有很多方法可以实现www子域的规范重定向,如果你使用的是ASP.NET 4.0,你可以这样做:

if (!Request.Url.Host.ToUpper().Contains("WWW"))
{
  Response.RedirectPermanent("http://www.myws.com/" + Request.Url.PathAndQuery, true);
}

您也可以使用IIS URL Rewrite module,安装后将其添加到您的web.config文件中:

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

答案 1 :(得分:0)

如果您有权访问IIS,则可以使用URL重写将流量从myws.com永久重定向到www.myws.com。请按照本教程:http://weblogs.asp.net/owscott/archive/2009/11/27/iis-url-rewrite-rewriting-non-www-to-www.aspx进行URL重写。

如果您无权访问IIS,则可以将以下代码添加到Application_BeginRequest事件中的global.asax.vb中:

If Request.Url.Authority.ToString <> "www.myws.com" Then
    Response.RedirectPermanent(Request.Url.Scheme.ToString() & "://www.myws.com" & Request.Url.AbsolutePath.ToString())
End If