用ISAPI_Rewrite实现静态化

ASP网站程序在国内运用很广,但是类似于 im286.asp?id=20050307213811这样的URL有点不利于搜索引擎的收录,也就是说不符合友好URL(URLs- Friendly)的标准,那么我们用ISAPI_Rewrite打造一个Clean URL, 1.下载ISAPI_Rewrite.ISAPI_Rewrite 分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦. 下载地址:http://bbs.pinluo.com/showtopic-798.aspx 2.安装.msi的文件,和装一般程序一样装就可以了,俺就装在D:/ISAPI_Rewrite.   3.接下来一步比较重要哦,看仔细喽.打开Internet 信息服务,右键,web站点属性,电ISAPI筛选器选项卡.添加筛选器,名称自己填,路径自己指定ISAPI_Rewrite.dll,然后确定.   4.来测试一下.新建一个1ting.asp,里面写上 <%=request.querystring("inso")%>,效果就是执行的时候1ting.asp?inso=*浏览器显

5.这一步很重要哦,开始添加rewrite规则.正则,好头痛,幸亏这个例子比较简单. 找到ISAPI_Rewrite目录,把httpd.ini的只读属性去掉,打开编辑.我们要把1ting.asp?inso=im286映射成为1ting-im286.html这样的类型,需要在httpd.ini里加上这么一行: RewriteRule /1ting-([0-9,a-z]*).html /1ting.asp/?inso=$1 ,保存. 6.来来来,到浏览器里查看一下效果吧.输入http://127.0.0.1/1ting.asp?inso=im286和http://127.0.0.1/1ting-im286.html,显示的内容是不是都是im286?这就证明成功啦!

嘿嘿,1ting-im286.html这样的页面要比1ting.asp?inso=im286容易收入,所以现在还在用动态方式的朋友可以尝试一下这样的静态映射效果. IIS Rewrite也可以实现这样的功能。 ------------------------------------------------------ ASP之URL重写 下载ISAPI_Rewrite解压到任意文件夹安装,给IIS用户读取权限,在IIS右键点击一个站点,属性,ISAPI筛选器,添加,筛选器名称一定得叫 re,可执行文件就点浏览找到你解压的目录Rewrite.dll加上即可。
  重启IIS后应该就能支持URL重写规则了。
   需要修改解压目录中的httpd.ini这个文件 RewriteRule /info_(/d+)/.htm /info/.asp/?id=$1 [N,I] 这句话就可以把提交的地址http://www.xxx.com/info_122.htm映射到真正的地址 http://www.xxx.com/info.asp?id=122 如果你在处理数据翻页,那么写法是: More_<%=Page%>_<%=type%>.html (注:page是翻页页数,type是数据类型) 表现形式:More_1_95.html 如果翻下一页,则为:More_2_95.html,继续下一页的循环,则是: More_3_95.html,以此类推。 不过你需要在httpd.ini文件中增加以下代码: RewriteRule /More_(/d+)_(/d+)/.html /jsp/more/.jsp/?page=$1&type=$2 [N,I] 如果你的动态程序有多个参数需要传递,那么就增加多个(/d+)即可,如下: RewriteRule /More_(/d+)_(/d+)_(/d+)/.html /jsp/more/.jsp/?page=$1&type=$2&type2=$3 [N,I] 翻页处理表现形式是:More_1_95.html 如果想把http://www.xxx.com/info.asp?id=50#abc 转换成静态的网页 因为#abc是程序处理了ID=50这个变量生成静态页面之后按锚点又做了一次页内链接,所以应该这么做映射 http://www.xxx.com/info.asp?id=50#abc转换成http://www.xxx.com /info_50.htm#abc,重写规则如下: RewriteRule /info_(/d+)/.htm#(/d+) /info/.asp/?id=$1#$2 [N,I] 注意:以前在Window 2000 IIS5.0一直使用ISAPI_Rewrite进行动态链接重写HTML静态网址, 最近升级到 Widnows 2003 IIS6.0 后,发现ISAPI_Rewrite根本运行不起来,在IIS 6.0里面一直提示“未加载”,后来查了又查,原来是文件的权限问题。 IIS 6.0 ISAPI_Rewrite 是在Service帐号下运行的,将数据文件的读写权限给予Service 帐号后,ISAPI_Rewrite 终于可以正常运行了。 Discuz! 6.0.0 RC1在Isapi Rewrite下的URL伪静态规则安装说明 在IIS的lsapi上添加这个筛选器 筛选器名称Rewrite可执行文件选择Rewrite.dll即可以了 httpd.ini 是配置文件,应该不要我多说了吧,很简单的 URL代码规则部分:(将红色部份copy至httpd.ini文件中保存,在Discuz后台中开启”普通页面静态化”或者”Archiver 和普通页面均静态化”功能,然后重启IIS或站点升效) # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 # Protect httpd.ini and httpd.parse.errors files # from accessing through HTTP RewriteRule ^(.*)/archiver/([a-z0-9/-]+/.html)/?*(.*)$ $1/archiver/index/.php/?$2&$3 RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)/.html/?*(.*)$ $1/forumdisplay/.php/?fid=$2&page=$3&$4 RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)/.html/?*(.*)$ $1/viewthread/.php/?tid=$2&extra=page/%3D$4&page=$3&$4 RewriteRule ^(.*)/profile-(username|uid)-(.+)/.html/?*(.*)$ $1/viewpro/.php/?$2=$3&$4 RewriteRule ^(.*)/space-(username|uid)-(.+)/.html/?*(.*)$ $1/space/.php/?$2=$3&$4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值