设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 8772|回复: 3
打印 上一主题 下一主题

Rewrite实现页面静态化重写

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-24 00:02:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、解压,并放在C盘(其它地方也可),如我们举例的放置目录及文件结构:
C:rewrite
C:rewriteISAPI_Rewrite.dll
C:rewritehttpd.ini(具体正则式书写方法参考本文下部)
如果您的服务器设置过权限,要给C:rewrite目录以您要设置的网站以相应的权限,也可以直接设成Everyone可读取和动行的权限;
2、安装ISAPI_Rewrite,打开IIS,点击您的站点右键到属性窗口,图例如附件图例。
3、添加成功后,重启IIS,再回到这个ISAPI筛选页面看看这里是不是绿色的,绿色表示ISAPI_Rewrite组件已经工作了,红色表示有问题,一般是权限的问题导致;
安装说明:
1、在IIS的Isapi上添加这个筛选器,筛选器名称 re,可执行文件选择 Rewrite.dll ;
2、设置httpd.ini文件
RewriteRule /news/(d+).html /jsp/news.jsp?id=$1 [N,I]
表示将news.jsp?id=95 转换成news/95.html
以此类推,如果你有更多的参数,则增加相应的(d+),而后面的id=$1,则增加id=$2,等等。

目前较为普遍的动态网页包括asp,php,jsp,shtml,jhtml,cgi......甚至还有一些自己定义的,比如:aspx,do,index,hello等等。表现形式为:news.asp?id=95。建议读者通过re_write将其转换成news/95.html,以便于google对改网页的识别。
re_write是iis里的一个模块,你可以从本站下载,里面有相关安装说明。
当需要将news.jsp?id=95的映射成news/95.html时,只需设置httpd.ini文件:
RewriteRule /news/(d+).html /news.jsp?id=$1 [N,I]
这样就把 /news/95.html 这样的请求映射成了 /news.jsp?id=95
然后你在连接处这样写:<a href='/news/95.html'>95新闻</a>。
如果你的新闻是通过数据库循环读取出来的,那么写法是:
while(rs.next())
{
String id = (String)rs.getString('id');
out.print('<a hef='/news/''+id+'.html>');
out.print('95新闻');
out.print('</a>');
}
如果你在处理数据翻页,那么写法是:
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
2#
发表于 2010-3-12 07:05:03 | 只看该作者
看了楼主的帖子,不由得精神为之一振,自觉七经八脉为之一畅,七窍倒也开了六窍半
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 16:39 , Processed in 0.069803 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表