利用ISAPI_Rewrite让动易实现伪静态

来源:转载

动易SiteWeaver6.8 本身支持静态,但这样的输出方式不是很好,每次都要生成,占用服务器资源,信息少还可以,如果信息多的话,那就麻烦了。而且如果整个站点生成静态后,当中要是想更改个样式或广告其他,那就要所有的页面重新生成一遍。今天正好帮一个客户做一个信息网站,打算弄成静态,但考虑以上的原因,最终决定在不改变动易本身程序的基础上结合ISAPI_Rewrite实现伪静态,具体操作如下:

1 首先下载ISAPI_Rewrite 地址:http://www.isapirewrite.com/download/isapi_rwl_0055.msi 安装好ISAPI_Rewrite ,添加到IIS中,如图:

然后重新启动下IIS,让ISAPI_Rewrite 生效,如图:

第二步:修改动易后台,这次我们对动易程序不做修改,不过变通下,通过动易后台的生成静态结合ISAPI_Rewrite实现伪静态

1 网站选项设置如下:

网站首页的扩展名:
若选择前四项,即启用了网站首页的生成HTML功能。.html      .htm      .shtml      .shtm      .asp全站专题的扩展名:
若选择前四项,即启用了全站专题的生成HTML功能。.html      .htm      .shtml      .shtm      .asp

2 对应的文章中心设置(其他频道自己修改下就可以了)Article

生成HTML方式:
服务器支持FSO才能启用“生成HTML”功能
每一次更改生成方式后,你需要先删除所有以前的文件,再重新生成所有文件。不生成    当频道中的信息量比较少(≤1000)时,可以选用此种方式,此方式最耗费系统资源。
全部生成    此方式在生成后将最节省系统资源,但当信息量大时,生成过程将比较长。
首页和内容页为HTML,栏目和专题页为ASP
首页、内容页、栏目和专题的首页为HTML,其他页为ASP (推荐)栏目、专题列表更新页数:
添加内容后自动更新的栏目及专题列表页数。*  如:更新页数设为3,则每次自动更新前三页,第4页以后的分页为固定生成的页面,当新增内容数超过一页,则再生成一个固定页面,在总记录数不是每页记录数的整数倍时,交叉页(第3、4页)会有部分记录重复。以下参数仅当“生成HTML方式”设为后三者时才有效。
请谨慎选择!在每一次更改以下参数前,你最好先删除所有以前生成的文件,然后在保存参数设置后再重新生成所有文件。
自动生成HTML时的生成方式:
添加/修改信息时,系统可以自动生成有关页面文件,请在这里选择自动生成时的方式。不自动生成,由管理员手工生成相关页面
自动生成全部所需页面
    当“生成HTML方式”设置为“全部生成”时,将生成所有页面;当“生成HTML方式”设置为后两种时,会根据设置的选项生成有关页面。
自动生成部分所需页面
    仅当“生成HTML方式”设置为“全部生成”时方有效。此方式只生成首页、内容页、栏目和专题的首页,其他页面由管理员手工生成。
 栏目列表文件的存放位置:列表文件分目录保存在所属栏目的文件夹中
    例:Article/ASP/JiChu/index.html(栏目首页)
        Article/ASP/JiChu/List_2.html(第二页)

列表文件统一保存在指定的“List”文件夹中
    例:Article/List/List_236.html(栏目首页)
        Article/List/List_236_2.html(第二页)

列表文件统一保存在频道文件夹中
    例:Article/List_236.html(栏目首页)
        Article/List_236_2.html(第二页)

 目录结构方式:
每一次更改目录结构后,你需要先删除所有以前的文件,再重新生成所有文件。
免费版不支持目录结构修改。频道/大类/小类/月份/文件(栏目分级,再按月份保存)
    例:Article/ASP/JiChu/200408/1368.html
频道/大类/小类/日期/文件(栏目分级,再按日期分,每天一个目录)
    例:Article/ASP/JiChu/2004-08-25/1368.html
频道/大类/小类/文件(栏目分级,不再按月份)
    例:Article/ASP/JiChu/1368.html
频道/栏目/月份/文件(栏目平级,再按月份保存)
    例:Article/JiChu/200408/1368.html
频道/栏目/日期/文件(栏目平级,再按日期分,每天一个目录)
    例:Article/JiChu/2004-08-25/1368.html
频道/栏目/文件(栏目平级,不再按月份)
    例:Article/JiChu/1368.html
频道/文件(直接放在频道目录中)
    例:Article/1368.html
频道/HTML/文件(直接放在指定的“HTML”文件夹中)
    例:Article/HTML/1368.html
频道/年份/文件(直接按年份保存,每年一个目录)
    例:Article/2004/1368.html
频道/月份/文件(直接按月份保存,每月一个目录)
    例:Article/200408/1368.html
频道/日期/文件(直接按日期保存,每天一个目录)
    例:Article/2004-08-25/1368.html
频道/年份/月份/文件(先按年份,再按月份保存,每月一个目录)
    例:Article/2004/200408/1368.html
频道/年份/日期/文件(先按年份,再按日期分,每天一个目录)
    例:Article/2004/2004-08-25/1368.html
频道/月份/日期/文件(先按月份,再按日期分,每天一个目录)
    例:Article/200408/2004-08-25/1368.html
频道/年份/月份/日期/文件(先按年份,再按日期分,每天一个目录)
    例:Article/2004/200408/2004-08-25/1368.html内容页文件的命名方式:文章ID.html    例:1358.html
更新时间.html    例:20040828112308.html
频道英文名_文章ID.html    例:Article_1358.html
频道英文名_更新时间.html    例:Article_20040828112308.html
更新时间_ID.html    例:20040828112308_1358.html
频道英文名_更新时间_ID.html    例:Article_20040828112308_1358.html频道首页的扩展名:.html    .htm    .shtml    .shtm    .asp栏目页、专题页的扩展名:.html    .htm    .shtml    .shtm    .asp内容页的扩展名:.html    .htm    .shtml    .shtm    .asp

这样配置好了后,自动生成HTML时的生成方式 一定要选择不自动生成,由管理员手工生成相关页面

第三步:配置ISAPI_Rewrite的httpd文件,这个是现实伪静态的关键

具体配置如下:

RewriteRule ^(.*)/Index.html $1/Index.asp
RewriteRule ^(.*)/Article/Article_([a-z0-9/-]+)/.html$ $1/Article/ShowArticle/.asp/?ArticleID=$2 [I,O]
RewriteRule ^(.*)/Article/Article_([a-z0-9/-]+)_([a-z0-9/-]+)/.html$ $1/Article/ShowArticle/.asp/?ArticleID=$2&Page=$3 [I,O]
RewriteRule ^(.*)/Article/List_([a-z0-9/-]+)/.html$ $1/Article/ShowClass/.asp/?ClassID=$2 [I,O]
RewriteRule ^(.*)/Article/List_([a-z0-9/-]+)_([a-z0-9/-]+)/.html$ $1/Article/ShowClass/.asp/?ClassID=$2&page=$3 [I,O]

具体的意思,大家可以参考httpd的规则,我简要的说明下:

第一条规则:是把所有的Index.asp 变成index.html 这个是实现首页的伪静态

第二条和第三条规则是 具体信息页面和信息分页的伪静态

第四和第五条规则是 具体的栏目页面和栏目分页的伪静态

到这里,整个伪静态就添加好了,大家可以尝试着访问看看,是不是达到了这样的效果。其他频道也可以参照。这次改动没有修改动易的任何文件,所以不影响到动易程序的升级和维护。

如果大家有更好的方法,也可以告诉我,大家互相交流。

分享给朋友:
您可能感兴趣的文章:
随机阅读: