利用URL重写实现参数目录化

本文介绍了如何将带有参数的URL重写为目录形式,如将http://www.abc.com/store/store.aspx?id=1024转换为http://www.abc.com/1024。文中探讨了使用微软的URL重写模块2.0(适用于IIS7)和isapi_rewrite(适用于IIS6)两种方法,并分享了正则表达式的应用和注意事项,包括IIS6中的/eurl.axd问题以及正则表达式中的问号使用限制。
摘要由CSDN通过智能技术生成
               

参数目录化,就是将 类似 http://www.abc.com/store/store.aspx?id=1024 这样的网址,对外改为 http://www.abc.com/1024。

要实现这种功能,可以用以下三种方式(应该不仅限这三种吧!)


1、用微软的 Microsoft URL 重写模块 2.0,但只能给IIS7使用,IIS6不行。

64位:

http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=1b8c7bd8-8824-4408-b8fc-49dc7f951a00

32位:

http://www.microsoft.com/zh-cn/download/details.aspx?id=5747

2、isapi_rewrite

http://www.helicontech.com/download-isapi_rewrite3.htm

但完全版有日期限制,如果不想掏钱,有大牛破解了,可以用下面这个:

http://download.csdn.net/detail/keke0307/3867086

3、urlrewriter.net

这个有源代码,可以自己编译。


机缘巧合之下,我用了方法一 和 二。因为开发机器是WIN7,装了IIS7,所以用微软的重写模块;而服务器是WIN2003,就用了isapi_rewrite。

下面就这两种方法分别做一点心得介绍。

事实上,这两种方法大同小异,IIS基本上不用怎么配置,没有网上说的那么玄妙,又是勾选,又是映射,又是权限之类,关键在于要写对正则表达式。


1、微软的 Microsoft URL 重写模块 2.0

安装好之后,就可以改写网站下的web.config了。

<configuration>  <system.web>    <compilation debug="true" targetFramework="4.0"/>    <httpRuntime/>  </system.web>  <system.webServer>    <rewrite>      <rules> <!-- 实现http://localhost/1024 ==> http://localhost/store/store.aspx?id=1024 -->        <rule name="storecode">          <match url="^([1-9][0-9]*)/?$" ignoreCase="true"/>          <action type="Rewrite" url="/store/store.aspx?id={R:1}"/>        </rule> <!-- 实现http://localhost/1024/p=1&c=1 ==> http://localhost/store/store.aspx?id=1024&p=1&c=1 -->        <rule name="storecode with param"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值