您的位置:首页 > 理论基础 > 计算机网络

301重定向1:利用Web.config的HttpModule实现整站301永久重定向

2011-07-07 16:10 399 查看
之前是做301定向是在每个页面调用一个方法的,原文/article/4921986.html

现在利用Web.config的HttpModule 实现整站301永久重定向

具体方法如下:
1在web.config加入配置

<configuration>
<appSettings>
<add key="WebDomain" value="wecanwecan.com"/>
<add key="URL301Location" value="www.wecanwecan.com"/>
</appSettings>

2,在当前解决方案下新建一个类库项目
3,新建一个cs,我这里粗陋的命名一下:ChangeDomain.cs

using System;
using System.Web;

using System.Configuration;

namespace ChangeDomain
{

public class RedirectNewDomain : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.AuthorizeRequest += (new EventHandler(Process301)); } public void Process301(object sender, EventArgs e) { HttpApplication app = (HttpApplication)sender; HttpRequest request = app.Context.Request; string lRequestedPath = request.Url.DnsSafeHost.ToString(); string strDomainURL = ConfigurationManager.AppSettings["WebDomain"].ToString(); string strWebURL = ConfigurationManager.AppSettings["URL301Location"].ToString(); if (lRequestedPath.IndexOf(strWebURL) == -1) { app.Response.StatusCode = 301; app.Response.AddHeader("Location", lRequestedPath.Replace(lRequestedPath, "http://" + strWebURL + request.RawUrl.ToString().Trim())); //这里面的域名根据自己的实际情况修改 app.Response.End(); } } } }
写完这个基本就ok了。剩下的就是在web.config里注册一下就好了。

<httpModules>
<add name="ChangeDomain" type="ChangeDomain.RedirectNewDomain, ChangeDomain" />
</httpModules>
上面的命名也是我这边的粗陋命名,具体的web.config注册写法如下:
<add name="随便命名" type="HttpModule命名空间加类名,dll文件名" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐