301在1& 1 Windows服务器上重定向

时间:2014-01-03 22:21:31

标签: asp.net redirect http-status-code-301

我有两个域名注册了1& 1并使用了他们的Windows服务器包。我让这两个域指向我服务器上的同一目录,因此它们显示相同的内容。我担心(读完后)这可能会导致两个问题:

  1. 重复内容
  2. 个人网页排名
  3. 我真正想要的是.co.uk的每个页面指向等效的.com页面,以便.co.uk的所有流量实际上都转换为.com等价物。例如。如果我输入http://www.hydrostyleuk.co.uk/faq/faq.aspx 进入我的地址栏我希望它转到http://www.hydrostyleuk.com/faq/faq.aspx 我很确定我正在寻找的是301重定向来实现这一目标,但我不知道如何解决这个问题。我是一名C#开发人员,并且之前没有托管我自己的网站,所以之前没有遇到过这个问题。

    我尝试将我的域转发为1& 1描述但是这似乎没有表现出我想要的行为。当通过http://www.howto301redirect.com/301-redirect-checker/检查重定向时,我实际上有一个302,页面将转到我的.com域的根页面,而不是如上所述的相关子目录。

    我不知道从哪里开始正常工作。我最关注的是尝试让我的搜索引擎优化正确,以便重定向必须按预期工作。

    作为更多信息,我的网站是用asp.net编写的,并托管在1& 1 Windows服务器软件包上。

1 个答案:

答案 0 :(得分:0)

我现在已经想出了解决这个问题的方法。 1& 1 Windows托管(我正在使用的软件包)似乎不允许在web.config中使用通常的重写解决方案,这使得事情变得困难,但事实证明这根本不可能。经过多次努力,没有看到像C#dev之类的东西,我终于重新开始使用C#cap并实现了解决方案。我只是在我的母版页的代码隐藏中编写下面的代码(因为我希望它通过所有页面传播),现在它正确执行重定向,如301-redirect-checker

所示
        protected void Page_Load(object sender, EventArgs e)
        {
        // Permanently 301 Redirect .co.uk to .com
        if (Context.Request.Url.AbsoluteUri.ToUpper().Contains("MYSITE.CO.UK"))
        {
            Context.Response.Status = "301 Moved Permanently";

            Context.Response.AddHeader("Location", "http://www.mysite.com" + Context.Request.Url.AbsolutePath);

            if (Request.Url.AbsolutePath.ToUpper() == "/DEFAULT.ASPX")
            {
                Response.AddHeader("Location", "http://www.mysite.com");
                Context.Response.RedirectPermanent("http://www.mysite.com");
            }
            else
            {
                Context.Response.AddHeader("Location", "http://www.mysite.com" + Context.Request.Url.AbsolutePath);

                Context.Response.RedirectPermanent("http://www.mysite.com" + Context.Request.Url.AbsolutePath);
            }
        }
    }