HttpModule和URLReWriter实现伪静态

本文介绍了伪静态技术的两种实现方式:通过HTTPModule拦截并重定向URL以及使用URLReWriter组件进行地址转换。这两种方法均可使动态页面显示为静态页面链接,从而有利于搜索引擎优化和保护真实路径。

为了站点内部的页面能最大限度的被搜索引擎收录(搜索引擎一般收录的是静态的URL地址),也为了不泄露站点内的真实地址(安全性考虑),因此有了这个伪静态的技术。

以腾讯的新闻详细页为例:

 

 

伪静态的实现方式之一利用HTTTPModule

实现原理:每一个页面都自己的生命周期(详细介绍上篇提到过),在进入到Page_Load之前还会经历HtttpModule和HttpHandler,因此可以在HttpModule这一步将请求的静态的URL地址截获,而将用户请求跳转到真正的动态页面上去。

自定义的一个HTTPModule代码如下

将HTTPMdule在web.config文件中注册

伪静态的实现方式之二利用URLReWriter

 实现原理:微软自带有一个URLReWriter.dll文件,该文件可以将静态的地址转换到真实的地址

首先下载最新的URLReWriter.dll文件:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi

下载后编译一下项目URLReWriter会生成URLReWriter.dll文件

将该DLL文件在web.Config文件中注册

  <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter"/>

静态页面地址处理下

 <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

 

将转发规则添加到配置文件当中

<RewriterRule>
    <LookFor>~/ProList-(\d{1,6})-(\d{1,6})\.html?</LookFor>
    <SendTo>~/ProList.aspx?Catalog=$1&amp;page=$2</SendTo>
    </RewriterRule>

 

伪静态实现的效果

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值