All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
防止用户上传产生无效文件源码_[Asp.Net教程]
十天学会ASP.net,第九天_.net资料_编程技术
ASP.NET实现重定向的三种方法的总结_.net资料_编程技术
DropdownList2种绑定方法实例代码_[Asp.Net教程]
动态网页常用技术:用PHP追随变量(cookie和session)_php资料_编程技术
ASP.NET Remoting体系结构(五)
2003 下 IIS+PHP+MySQL+Zend Optimize_[PHP教程]
ASP.NET,2.0服务器控件之实现验证控件_[Asp.Net教程]
javascript代码混淆综合解决方案_JavaScript技术_编程技术
在PHP中全面阻止SQL注入式攻击之一_[PHP教程]
Reading number is top 10 pictures
The real super beauty15
湖南中医院的养生八图
小学生考试又现神作--还有外国的
传奇套装
The real super beauty5
身材野火台灣美女1
乳娘帕梅拉安德森2
西游日记1
网络游戏与脑残
这才是真正的人体艺术3
Download software ranking
徐若瑄成名作“魔鬼天使”
linux初级教程
Unix video tutorial15
jdk1.5
Tram sex maniac 2 (H) rar bag9
Unix video tutorial1
linux高级编程
Professional killers2 data package
Tram sex maniac 2 (H) rar bag17
Wild things 2
delv published in(发表于) 2014/1/16 9:28:54 Edit(编辑)
ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI_[Asp.Net教程]

ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI_[Asp.Net教程]

ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI_[Asp.Net教程]

URL重写已经有很多的方法,但是多数都有一个缺点,就是不支持无扩展名的网页。比如把http://dwww.cn/HtmlData/Program/index.asp 转换为http://dwww.cn/class.asp?id=2


微软提供的方法需要在根目录里面建立jyk的文件夹,然后再建立一个default.aspx的文件,如果您有100名会员的话,这是一个不可想象的事情。


另一个方法就是使用ISAPI过滤器,但是这个一般需要在服务器上安装一个DLL文件,自己没有服务器就不好办了。


下面提供一个可以说是我发明的一个方法——不知道以前有没有人想到过——利用两个特性来实现。


第一个:IIS里面的找不到文件的错误设置。


第二个:asp.net 里面的Server.Transfer("topic.aspx?id=jyk");


这两个结合起来就可以达到我们的目的了。


思路:利用404b错误捕捉客户的请求,再使用Server.Transfer转向。


在我们访问http://www.aaa.com/jyk 的时候,假设这时服务器上没有jyk文件夹,那么会返回什么结果呢?会返回一个“无法找到该页”的页面,那么这个返回结果能不能自己控制一下呢?很幸运IIS提供了这个功能,我们可以把这样的错误指定到网站里的一个页面。


操作步骤:


第一步:打开IIS管理器,网站属性——自定义错误标签——404错误——点击修改——修改“消息类型”为“URL”,在下面的文本框里填写处理这个错误得页面名称,比如/none.aspx。



第二步:在我们的网站根目录下建立一个none.aspx的网页。在里面随意写点内容(测试用)。


设置完毕,这时再访问http://www.aaa.com/jyk,显示的就是 none.aspx的网页内容了。注意这时浏览器里面的URL地址仍然是http://www.aaa.com/jyk,而不是http://www.aaa.com/none.aspx 。这一点很重要,如果地址变了,那就没有意义了。


那么我们怎么把页面转到我们希望的页面呢,这时所有的找不到文件的情况都会转到none.aspx文件,显然这不是我们想要的最终结果。那么我们怎么获取客户输入的网址呢?


打开none.aspx的后台文件,


string URL = Request.Url.Query;


我们可以使用上面的语句来获取URL地址,得到的地址格式是:


?404http://www.aaa.com/jyk


其中 “?404”是固定的,过滤掉它就是浏览器里面的URL地址了。


剩下的事情就是根据情况来转换网页了。可以拆串,再用switch来判断;也可以用正则表达式来判断。因为我正则不熟,我采用的是switch的方式。正则表达式请参考其他的资料,我也在找,如果您找到了请共享一下,谢谢。


优点:


1、 支持无扩展名的网页。不用建立文件夹和文件。


2、 思路简单,用法也很简单,代码也不复杂,不涉及高深的理论;


3、 支持搜索引擎,就是说可以被各大搜索引擎搜录。


4、 可以配合域名泛解析使用。


缺点:


1、 需要修改一下IIS 404b错误的处理方法;


2、 效率要略微低一点。


3、 如果您只使用.aspx的扩展名的话就可以不用修改IIS了。


4、 Asp不支持。因为asp的Server.Transfer不能带参数(?id=jyk),不能传递参数的重写几乎没有什么意义。


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.