[转]asp.net正确的301永久重定向方法

有如下情况:

两个域名: atnet.cc 和ops.cc都泛解析到一个主机上,所以无论是 abc.atnet.cc,还是bbc.ops.cc都将访问到主机的上默认网站,

这样子对SEO是非常不友好的,这时候我们需要使用301重定向技术将所有子域名定向到 www.ops.cc

作者通过HttpModule实现301重定向,代码如下:

namespace OSite.Web
{
    using System.Web;

    public class MyHttpModule : IHttpModule
    {
        public void Dispose()
        {
            
        }

        public void Init(HttpApplication context)
        {
            context.BeginRequest += (o, e) =>
            {
                HttpContext c = HttpContext.Current;
                if (c.Request.Url.Host.IndexOf(".ops.cc") == -1)
                {
                    c.Response.StatusCode = 301;
                    string path = c.Request.Url.PathAndQuery;
                    c.Response.Headers.Add("Location", "http://www.ops.cc"+path);
                }
            };
        }
    }
}

假设我们访问:  bbc.ops.cc/web/,程序将定向到 www.ops.cc/web/

这样就不会影响到主站的权重了

最后我们需要在WebConfig中的HttpModule中新加上我们的Httpmodule类

注:时间紧急,作者直接拷贝代码,实际应用中需修改为你自己的域名

本文出自 “苦瓜的博客” 博客,请务必保留此出处http://atweb.blog.51cto.com/1450481/553701

原文地址:https://www.cnblogs.com/newmin/p/2028973.html