有如下情况:
两个域名: 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类
注:时间紧急,作者直接拷贝代码,实际应用中需修改为你自己的域名
转载于:https://blog.51cto.com/atweb/553701