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

asp.net 利用Web.config的HttpModule 实现整站301永久重定向(简单方便)

2010-12-23 12:00 706 查看
之前是做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文件名" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐