URL重写与伪静态

本文介绍如何在ASP.NET中使用URL重写技术实现网页的伪静态效果,包括使用第三方包进行配置、修改Web.config文件及IIS设置的具体步骤。

URL重写与伪静态

左直拳

实现网页伪静态的方法有很多种罢?可是我都不会。

在百度、GOOGLE里找来找去,许久连个屁也没找到。

新年过后,春回大地,万象复苏,冻雨暴雪天气逐渐结束,听说湖南郴州城区也慢慢恢复了供电,而近日科索沃也悍然独立了,真是喜事连连,令人笑逐颜开。

在改革春风的吹拂下,我居然也得以利用URL重写实现了伪静态。

原理是在ASPNET层面上将URL重写。用户访问的是类似

http://www.fuck.com/1-345.aspx这样的地址,实际上真实的页面是

http://www.fuck.com/fuck.aspx?male=1&female=345

要实现这种效果,需要利用一个老外写的一个包(详细请见http://msdn2.microsoft.com/zh-cn/library/ms972974.aspx

)。不过他提供了所有的源代码。与其他下载来历不明的 DLL方法 相比,这种方法更令我们放心。一切尽在掌握。

将这个包编译,然后引用产生的DLL。接着修改 Web.config。加入以下代码

<configSections>

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

</configSections>

……

<!-- url rewriter规则 开始-->

<RewriterConfig>

<Rules>

<RewriterRule>

<LookFor>~/(\d{1,})-(\d{1,})\.aspx</LookFor> <! 正则表达式 -->

<SendTo>~/fuck.aspx?male=$1&amp;female=$2</SendTo>

</RewriterRule>

<RewriterRule>

<LookFor>~/fuckyou.aspx</LookFor>

<SendTo>~/fuck.aspx?malename=me&femalename=you</SendTo>

</RewriterRule>

</RewriterConfig>

<!-- url rewriter规则 结束-->

……

<httpModules>

<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

</httpModules>

可以这还不是伪静态啊。我想达到的效果是输入

http://www.fuck.com/1-345.html,从而访问

http://www.fuck.com/fuck.aspx?male=1&female=345

MSDN这篇文章反反复复的看,都只能处理ASPX文件。怎么办?

主要是输入*.htmlIIS会认为这是一个静态页面,根本就到不了ASP.NET这一层,那个引用的包也就无用武之地了。如果能让ASPNET处理html类型的页面就好了。

结果配置一下IIS就搞定了。

IIS里,点击指定网站的属性,主目录-配置-映射,添加,可执行文件选:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

扩展名:.html

勾上“全部动作”和“脚本引擎”

务必取消“检查文件是否存在”(不然的话IIS一看没这个1-345.html,立马返回一个页面不存在的错误)

确定即可。

相应的WEB.CONFIG里也要改改:

<RewriterRule>

<LookFor>~/(\d{1,})-(\d{1,})\.html</LookFor>

<SendTo>~/fuck.aspx?male=$1&amp;female=$2</SendTo>

</RewriterRule>

啊!终于搞定了。我情不自禁地流出了激动的泪水。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值