Rewrite实现页面静态化重写

Rewrite实现页面静态化重写

1、解压,并放在C盘(其它地方也可),如我们举例的放置目录及文件结构:

C:\rewrite
C:\rewrite\ISAPI_Rewrite.dll
C:\rewrite\httpd.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在上一篇文章中,我们介绍了什么是URL重写和为什么要使用动态页面静态。本文将进一步探讨如何使用URL重写将动态页面转换为静态页面。 1. 确定需要静态页面 通常情况下,我们会选择那些频繁访问、数据不经常更新的页面进行静态,这样可以大幅度减少服务器压力,提高网站响应速度。 2. 编写URL重写规则 接下来,我们需要编写URL重写规则,将动态页面的URL转换为静态页面的URL。这里我们以Apache服务器为例,使用mod_rewrite模块来实现URL重写。 例如,我们要将动态页面http://www.example.com/article.php?id=1 转换为静态页面http://www.example.com/article/1.html,则可以使用以下规则: ``` RewriteEngine On RewriteRule ^article/([^/]*)\.html$ /article.php?id=$1 [L] ``` 这个规则的意思是:将以“/article/”开头、以“.html”结尾的URL请求重写为“/article.php?id=”后面接文章ID的形式。 3. 编写静态页面生成程序 重写URL只是第一步,我们还需要编写程序将动态页面生成为静态页面。这个程序可以是一个独立的脚本,也可以是在页面加载时自动执行的程序。 例如,我们可以在article.php页面中加入以下代码: ``` if(!file_exists("article/".$_GET['id'].".html")){ ob_start(); // 页面内容 $content = ob_get_contents(); ob_end_clean(); file_put_contents("article/".$_GET['id'].".html", $content); } ``` 这个程序的作用是:当访问article.php页面时,如果“/article/”后面的ID对应的静态文件不存在,则将页面内容缓存起来,并保存为“/article/”后面的ID对应的静态文件。 这样,当下一次访问同一页面时,服务器会直接返回静态页面,而不用再去执行动态页面生成的过程,从而提高网站响应速度。 4. 静态页面更新 由于静态页面不像动态页面那样能够自动更新,因此我们需要编写相应的程序来实现静态页面的更新。 例如,我们可以在article.php页面中添加以下代码: ``` if(file_exists("article/".$_GET['id'].".html")){ unlink("article/".$_GET['id'].".html"); } ``` 这个程序的作用是:当文章内容发生变时,删除对应的静态文件,下一次访问该页面时会重新生成静态文件。 总结: 通过URL重写和动态页面静态,可以大幅度提高网站的响应速度,减少服务器压力。但是需要注意的是,静态页面不适合频繁更新的内容,否则可能导致用户看到的内容与实际情况不符。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值