首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

使用IHttpModule实现URL重写解决方法

2012-03-20 
使用IHttpModule实现URL重写C# codeusing Systemusing System.Webusing System.Collectionsnamespace H

使用IHttpModule实现URL重写

C# code
using System;using System.Web;using System.Collections;namespace HttpURLModule{    public class HttpReWriter : IHttpModule    {        public void Init(HttpApplication context)        {            context.BeginRequest += new EventHandler(contextRequest);        }        private void contextRequest(object sender, EventArgs e)        {            /*            www.rbmm.cn/rbxx/Index.html创建单位主页            www.rbmm.cn/rbxx/zzld_Index.html?id=1创建单位栏位主页            www.rbmm.cn/rbxx/zzld_201201_2.html内容            BuildHtml/100006002/Index.html            */            HttpApplication app = sender as HttpApplication;            Hashtable DktUrl = app.Application["DKTUrl"] as Hashtable;            if (app == null) return;            string currentUrl = app.Context.Request.RawUrl.TrimEnd('/');            string[] slUrl = currentUrl.Split('/');            string newUrl = currentUrl;            if (slUrl.Length == 2)            {                object objValue = DktUrl[slUrl[1].ToLower()];                if (objValue != null)                {                    newUrl = slUrl[0] + "/BuildHtml/" + (string)objValue + "/Index.html";                }            }            else if (slUrl.Length > 2)            {                object objValue = DktUrl[slUrl[1].ToLower()];                if (objValue != null)                {                    newUrl = currentUrl.Replace("/" + slUrl[1] + "/", "/BuildHtml/" + (string)objValue + "/");                }            }            app.Context.RewritePath(newUrl);        }        public void Dispose() { }    }}


这是我写的URL重写的代码

比如我输入:www.rbmm.cn/renben/index.aspx 需要解析成:www.rbmm.cn/BuildHtml/100006002/index.aspx 而实际没有目录:renben ,系统提示404错误。
我怎么做的没有 renben目录 解析到BuildHtml/100006002目录

[解决办法]
推荐楼主看一下:
http://www.cnblogs.com/luckdv/articles/1687942.html
希望对你有帮助
[解决办法]
没那个路径,估计newUrl,有问题,iis上的网站目录与调试目录是不一样的,看下

另外,你rewrite,用这个有点复杂了,而且,你没用正则,灵活性太差,匹配的逻辑修改,要重编译,麻烦

推荐直接webconfig配置的,直观,灵活

热点排行