URL重写 HttpModule进阶和dll重写
来源:互联网 发布:开罗宣言 知乎 编辑:程序博客网 时间:2024/05/05 22:19
URL重写
URL重写,实质上是将网页真实的URL隐藏起来,使用户通过相应的虚拟URL访问网页资源,以弥补真是URL的许多不足
好处:
1.满足搜索引擎需要,实现搜索引擎中的排名优化
很多搜索引擎不支持动态链接无法抓去动态网页,尤其是带“?”查询参数的网页,而且静态网页优先度高于动态网页
2.隐藏网页实现技术,增强网页安全性
如果网页上含jsp或aspx 制作网站的技术一目了然。但如果将页面重写 黑客将无法知晓网页技术,大大降低网页收到攻击的可能性
3.提高网站的可用性和专业性
太长的URL会给网站带来可用性问题
4.使用URL支持“可删减”的需求
很多搜索引擎不支持动态链接无法抓去动态网页,尤其是带“?”查询参数的网页,而且静态网页优先度高于动态网页
如果网页上含jsp或aspx 制作网站的技术一目了然。但如果将页面重写 黑客将无法知晓网页技术,大大降低网页收到攻击的可能性
使用HttpModule实现URL重写
代码实例
<div> <a href="goods_1.html">1</a> <a href="goods_2.html">2</a> </div>
namespace ch3{ public class GOODHT : IHttpModule { public void Dispose() { throw new NotImplementedException(); } public void Init(HttpApplication context) { //请求处理之前触发的事件 context.BeginRequest += context_beginRequest; } void context_beginRequest(object sender,EventArgs e) { HttpApplication app = sender as HttpApplication; //获取请求的原始的URL string url = app.Request.RawUrl; //正则表达式:.../goods_1.html Regex regex = new Regex(@"\w+_\d+\.html"); if (regex.IsMatch(url)) { //如果符合格式,则需要进行URL重写 //截取URL中的编号 int line = url.LastIndexOf("_"); int dot = url.LastIndexOf("."); string id = url.Substring(line + 1, dot - line - 1); //拼接真实的URL string dcURL = "Good.aspx?id=" + id; //跳转 Server.Transfer app.Server.Transfer(dcURL); } } }}
//节点配置
<system.webServer> <modules> <add name="url" type="ch3.GOODHT"/> </modules> </system.webServer>
使用URLRewriter.dll实现URL重写
只要在Web.config文件中添加URL重写规则
1.下载URLRewriter.dll下载地址 http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cg/MSDNURLRewriting.nsu
2.在网站中添加引用URLRewriter.dll
3.在网站中添加页面
4.web.config文件中配置使用URLRewriter.dll
将configSections节点作为configuration的第一个子节点进行添加
用于指定配置节RewriterConfig的处理程序类的名称为URLRewriter.Config.Rewriter.ConfigSerializerSectionHandler
将所有扩展名为.html文件的HTPP请求映射到类 URLRewriter.RewriterFactoryHandler中添加规则
代码示例
<div> <a href="goods_1_45.html">1</a> </div>
节点配置
<!--dll重写URL 必须放低一个--> <configSections> <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /> </configSections> <!--规则--> <RewriterConfig> <Rules> <RewriterRule> <LookFor>~/goods_(\d)+\.html</LookFor> <SendTo>~/Good.aspx?id=$1</SendTo> </RewriterRule> <RewriterRule> <LookFor>~/goods_(\d)_(\d+)+\.html</LookFor> <SendTo>~/Good.aspx?id=$1&id2=$2</SendTo> </RewriterRule> </Rules> </RewriterConfig> <system.webServer> <handlers> <add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" name ="urlrewriter"/> </handlers> </system.webServer>
实现多个参数URL重写
多个参数用&间隔 (URL中连接多个参数&)取值为()里面的值
例如
<LookFor>~/goods_(\d)_(\d)+\.html</LookFor><SendTo>~/Good.aspx?id=$1&pwd=$2</SendTo>
- URL重写 HttpModule进阶和dll重写
- HttpModule类(URL重写)
- HttpModule实现URL重写
- DNN-HttpModule.UrlRewrite( url重写 )
- 使用HttpModule实现URL重写
- 利用HttpModule实现URL重写
- HttpModule(URL重写).html伪静态
- ASP.NET HttpModule URL 重写 (一)
- 二级域名url重写的dll
- 【进阶】用mod_rewrite模块和.htaccess文件实现URL重写
- 使用HttpModule(给页面添加页头和页尾,重写URL)
- URL映射和重写
- 使用 HttpModule 执行 URL 重写的时机选择
- .net通过继承HttpModule类实现Url重写
- URL重写,asp.net URL重写,URLRewriter.dll下载,URLRewriter,URLRewriter下载,URL重写学习
- URL重写之在IIS7中使用HttpModule,在IIS5和IIS6中使用 ISAPIRewrite实现无扩展名的URL重写(节选自福娃儿)
- URL重写只要下载一个URLRewriter.dll
- 利用Intelligencia.UrlRewriter.dll实现URL重写
- PS流的格式和解析总结
- 杨辉三角(作业)
- PAT乙级(Basic Level)真题 >跟奥巴马一起编程
- C++中的static关键字
- 中缀表达式转换后缀表达式并求值(java实现)
- URL重写 HttpModule进阶和dll重写
- android:clearTaskOnLaunch=true 和android:finishTaskOnLaunch=true区别
- 数据库查询模糊匹配
- How to add user in gerrit
- C盘清理
- spring data jpa使用limit时,抛QuerySyntaxException unexpected token: limit
- 每日一题 No.14 全排列(利用next_permutation)
- Financial Management UVA
- FTPS 与SFTP大对决