将http://example.com重定向到http://www.example.com

时间:2011-05-02 13:33:41

标签: c# .net redirect dns subdomain

  

可能重复:
  Route www link to non-www link in .net mvc

嗨,

我希望我的网站只能在www子域上访问。 我该怎么办?

我正在使用ASP .NET 3.5,C#,IIS 7,但我在GoDaddy上托管它,因此无法访问IIS,只需FTP。

谢谢, 丹

3 个答案:

答案 0 :(得分:2)

使用Godaddy上提供的rewrite module

您可以从IIS进行设置,也可以将web.config放在<system.webServer>下的<rewrite> <rules> <rule name="Canonical" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^([a-z]+[.]com)$" /> </conditions> <action type="Redirect" url="http://www.{C:0}/{R:0}" redirectType="Permanent" /> </rule> </rules> </rewrite> 下:

protected void Application_BeginRequest(object sender, EventArgs ev)
{
    if (!Request.Url.Host.StartsWith("www", StringComparison.InvariantCultureIgnoreCase))
    {
        Response.Clear();
        Response.AddHeader("Location", 
            String.Format("{0}://www.{1}{2}", Request.Url.Scheme, Request.Url.Host, Request.Url.PathAndQuery)
            );
        Response.StatusCode = 301;
        Response.End();
    }
}

或者,您可以在global.asax.cs上进行此重定向:

{{1}}

答案 1 :(得分:0)

看看this blog post by ScottGu。您必须手动将规则添加到web.config。

答案 2 :(得分:0)

如果您正在运行Apache Web服务器,请将其添加到.htaccess文件中:

RewriteCond %{http_host} .
RewriteCond %{http_host}!^www\.example\.com [NC]
rewriterule (.*) http://www.example.com/$1 [R=301,L]