Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI。

ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI。

作者头像
用户1174620
发布于 2018-02-07 08:03:49
发布于 2018-02-07 08:03:49
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

URL重写已经有很多的方法,但是多数都有一个缺点,就是不支持无扩展名的网页。比如把http://www.aaa.com/jyk 转换为 http://www.aaa.com/topic.aspx?id=jyk。

微软提供的方法需要在根目录里面建立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的后台文件,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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),不能传递参数的重写几乎没有什么意义。

这种方法已经实践过了,效果很理想。www.1380000.comwww.1370000.com这两个网站就是使用的这种方法。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2007-03-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
IIS - 短文件名猜解漏洞
为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的Windows 8.3短文件名。
渗透攻击红队
2019/11/20
3.8K0
IIS - 短文件名猜解漏洞
Url Rewrite 再说Url 重写
前几天看到园子里一篇关于 Url 重写的文章《获取ISAPI_Rewrite重写后的URL》 , URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次。搜索一下URL-Rewrite可以找到很多URL-Rewrite方面的文章和组件,自己以前也多次接触过这个东东,也来说说吧。 ScottGu 有一篇非常经典的 URL-Rewrite Blog Tip/Trick: Url Rewriting with ASP.NET http://weblogs.asp.net/scot
葡萄城控件
2018/01/10
4.9K0
Url Rewrite 再说Url 重写
URL重写
(图片来自:https://github.com/Bikeman868/UrlRewrite.Net)
问问计算机
2021/05/08
5.5K0
URL重写
二:理解ASP.NET的运行机制(例:基于HttpHandler的URL重写)
url重写就是把一些类似article.aspx?id=28的路径 重写成 article/28/这样的路径 当用户访问article/28/的时候 我们通过asp.net把这个请求重定向到artic
liulun
2022/05/08
3960
红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载
为了能在红队项目中发现更多的打点漏洞,我曾经花了不少精力,把那些大家觉得不重要的中低危漏洞拿来研究一下,发现有几个漏洞还是很有利用价值的,比如说,“IIS短文件名猜解漏洞”。这个漏洞有以下这么几个特点:1、危害等级是中低风险。2、在当前网站应用中还广泛存在。3、微软官网不太认可这个漏洞,不出补丁。4、很多客户也选择不修复。5、漏洞利用起来极其困难,需要很大的耐心和毅力。但是我借助此漏洞间接拿权限成功了很多次,还是有很多技巧在里面的,下面分享一下详细过程。
ABC_123
2022/07/01
1.2K1
红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载
ASP.NET 主题(Themes)FAQ
1、主题是什么 主题由一组元素组成:外观、级联样式表 (CSS)、图像和其他资源。主题将至少包含外观。主题是在网站或 Web 服务器上的特殊目录中定义的。主题是一组Web Control的属性设置的集合,提供一种简单的方法设置控件的样式属性。 · 主题只在Web Control中有效 · 母板页(Master Page)上不能设置主题,但是主题可以在内容页面上设置 · 主题上设置的Web Control的样式覆盖页面上设置的样式 · 如果在页面上设置EnableTheming="false",主题无效 ·
张善友
2018/01/31
9360
asp.net三种重定向方法的总结
(1)Server.Transfer方法: Server.Transfer(m2.aspx);/网络
Java架构师必看
2021/03/22
7160
IIRF(Ionics Isapi Rewrite Filt er)实现在IIS 5/6上重写Url
IIS 7的URL Rewrite功能非常强大,可以通过Microsoft URL Rewrite Module来实现,可参看文章使用Microsoft URL Rewrite Module for IIS 7.0修改WEB.CONFIG即可实现*.HTML伪静态 无需修改应用程序映射。 IIS 5/6的URL Rewrite也可以通过IIRF(Ionic's Isapi Rewrite Filter)来实现。IIRF(Ionic's Isapi Rewrite Filter)是一款开源的重写URL过滤器,
张善友
2018/01/30
1.8K0
Web漏洞 | 文件解析漏洞
文件解析漏洞主要由于网站管理员操作不当或者 Web 服务器自身的漏洞,导致一些特殊文件被 IIS、apache、nginx 或其他 Web服务器在某种情况下解释成脚本文件执行。
天钧
2020/03/12
2.8K0
ASP.NET 防盗链的实现[HttpHandler]
本文转载:http://www.cnblogs.com/eflylab/archive/2008/06/16/1223373.html
跟着阿笨一起玩NET
2018/09/19
1.1K0
ASP.NET 防盗链的实现[HttpHandler]
asp.net(c#)网页跳转几种方法小结「建议收藏」
在asp.net下,经常需要页面的跳转,下面是具体的几种方法。跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于.net中response.redirect sever.execute server.transfer 三种页面跳转的方法
全栈程序员站长
2022/09/09
2.8K0
ASP.NET的路由系统:URL与物理文件的分离
表现为请求地址与目标Controller和Action的动态映射的URL路由系统并不是专属于ASP.NET MVC,而是直接建立在ASP.NET 中。ASP.NET通过URL路由系统实现了请求地址与物理文件的分离。[源代码地址从这里下载] 一、URL与物理文件的分离 对于一个 ASP.NET Web Form应用来说,任何一个请求都对应着某个具体的物理文件。部署在Web服务器上的物理文件可以是静态的(比如图片和静态HTML文件等),也可以是动态的(比如.asxp文件)。对于静态文件的请求,ASP.NET直接
蒋金楠
2018/01/15
1.3K0
ASP.NET的路由系统:URL与物理文件的分离
提升网页打开速度的实用方法
网站访问速度可以直接影响到网站的流量,而网站的访问量几乎与网站的利益直接挂钩,因此网站的速度问题成为企业及站长十分关注的问题。现在网站越来越多,不少朋友的网站打开速度很不理想。也许自己打开网站速度很快
全栈程序员站长
2022/07/07
2.5K0
Asp.net mvc 知多少(四)
本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可访问http://www.dotnettricks.com/free-ebooks自行下载。该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。 由于个人技术水平和英文水平也是有限的,因此错误在所难免,希
圣杰
2018/01/11
2.4K0
Asp.net mvc 知多少(四)
HttpHand和HttpModule的详细解释,包括Asp.Net对Http请求的处理流程。
了解当用户对一个.aspx页面提出请求时,后台的Web服务器的动作流程。当对这个流程了解后,我们就会明白HttpHandler和HttpModule的作用了。
Java架构师必看
2021/03/22
9430
C#页面之间跳转功能的小结
引言   ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递值,同样的事情,在使用事件驱动编程模型的ASP.NET就不是那么容易了,当然了,我们仍然有一些方法可以实现同样的功能。本文将试着使用不同的可能的方法来解决这个问题,但可以预见是,本文将包含使用querystring,session变量以及server.Transfer方法来实现页面间的值传递。
aehyok
2019/02/25
4.3K0
ASP.NET的导航链接问题求助
在VS2008里面开发完全正常,但是在IIS5.1里面默认网站里面新增一个虚拟目录的制定到这个网页里面的话在浏览器里面http://localhost/查看就是可以显示,但是里面的链接全部不正常。 举例:虚拟目录的名称为meng,那么我们要访问我们的网站就要这样:http://localhost/meng/Default.aspx 这样首页是出来了,但是里面的链接都不是以http://localhost/meng/开头,而是以http://localhost/开头!!也就是说我网站目录里面有一个Gu
SAP梦心
2022/05/10
1.5K0
ASP.NET里的Session详细解释
Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。
全栈程序员站长
2022/07/15
1.4K0
ASP.NET 运行机制详解
1.浏览器和服务器的交互原理 通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去访问一台电脑上访问文件一样,只不过浏览器的访问请求是由被访问的电脑上的一个 WEB服务器软件来接收处理,它会分析接收到的请求信息,从而按照请求信息来找到服务器电脑上的文件,经过处理,最终将生成的内容发回到浏览器。 简单的说就是:由浏览器生成一条“命令”,通过互联网发给另一台电脑的某个软件(服务器软件);服务器软件接收到“命令”,就分析理解这个“命令”,然后按照“命令”找到服务器电脑上的文件,将文件内容发送回浏览器
hbbliyong
2018/03/06
2.2K0
ASP.NET 运行机制详解
Web中间件漏洞之IIS篇
IIS 是 Internet Information Services 的缩写,意为互联网信息服务,是由微软公司提供的基于运行 Microsoft Windows 的互联网基本服务。最初是 Windows NT 版本的可选包,随后内置在 Windows 2000 、Windows XP Professional 和 Windows Server 2003 一起发行,但在 Windows XP Home 版本上并没有 IIS 。
美创科技
2023/05/12
2.1K0
Web中间件漏洞之IIS篇
相关推荐
IIS - 短文件名猜解漏洞
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验