AXzhz

专注ASP.NET!
        写软件的都是小姐,用软件的都是大爷。真TMD说的正确!
                嫖妓不给钱,反说被强奸!___中国共享软件的无奈!
读小学的时候大学不要钱,读大学了小学不要钱。
没工作时国家有分福利房,工作了后全是高价房!!

                        此软件能有效的破解QQ密码。(注:破解QQ密码是违法行为,请不要将软件用于违法行为)
“安得广厦千万间,大庇天下寒士俱欢颜,风雨不动安如山。”1200多年前,诗人杜甫的理想,如今被一帮享受着电脑和互联网带来的快捷生活方式的受过高等教育的大孩子憧憬着。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

使用RewritePath方法实现【不同路径+任意URL后缀重写到指定页面且URL地址不变】(附源码)_AX

还是上篇的需求,用这个方法就简单多了.
【步骤】
①在项目里建一个Test目录,再Test目录下建一个页面:AX.aspx
②在Global.asax.cs里添加Application_BeginRequest()方法的内容

        protected void Application_BeginRequest(Object sender, EventArgs e)
        
{
            
string originalurl, newurl;            
            originalurl 
= Request.Url.PathAndQuery;            

            
//获取页面名称且不包括扩展名
            newurl=originalurl.Substring(originalurl.LastIndexOf('/'),originalurl.LastIndexOf('.')-originalurl.LastIndexOf('/')+1);
            newurl
="~/Test"+newurl+"aspx";            
            
/*这句是精华    
            【~/】表示网站根目录
            真的很奇怪,以前表示根目录不用【~】就可以的,
            但这里执行下面这句话会报错:
            虚拟路径“/Test/AX.aspx”映射到另一个应用程序,这是不允许的。
*/

    
            HttpContext.Current.RewritePath(newurl);            
        }


在IIS上注册.ax后缀.具体见上篇的⑤
④配置该项目的网站(具体见我前面的帖子),我机子上的本例网站名:www.rewritepath.com
⑤测试,输入以下网址
http://www.rewritepath.com/AX.ax
http://www.rewritepath.com/AX.aspx
http://www.rewritepath.com/sadfsa/sdf/AX.ax
http://www.rewritepath.com/sad/fsa/sdf/AX.aspx
实际路径
:http://www.rewritepath.com/Test/AX.aspx
测试通过,OK,Very Good!

【扩展】
ⅰ可通过正则表达式实现不同规则的URL重写

ⅱ可以使用该方法的重载方法,实现带参数的扩展

C#
public void RewritePath (
            string filePath,
            string pathInfo,
            string queryString
            )

参数

filePath         内部重写路径。
pathInfo       资源的附加路径信息。
queryString   请求查询字符串。

 ⅲ本来想用该方法实现页面间跳转,结果失败了,出现错误:
无法验证数据。
但我看MSDN上有页面跳转的部分代码,不知道它怎么弄的.

【总结】
这个属于简单实用的快餐,方法本身实现页面跳转,且地址栏的URL不变,而上篇使用IHttpHandler则有些接近底层,对我们深入了解ASP.NET有好处,也可以实现更强大的功能.

【附】本文参考了Henry LiuASP.NET 2.0 中的URL 重写技术 ,其实就是它的一个简单版
URL:http://www.cnblogs.com/lgp/archive/2006/10/16/530426.html

posted on   斧头帮少帮主  阅读(9727)  评论(3编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
Google
 
站内搜索:        
园内搜索:
金山词霸:
点击右上角即可分享
微信分享提示