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类

 

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

你可能感兴趣的:(职场,asp.net,休闲,301重定向)