动易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 这个是实现首页的伪静态
第二条和第三条规则是 具体信息页面和信息分页的伪静态
第四和第五条规则是 具体的栏目页面和栏目分页的伪静态
到这里,整个伪静态就添加好了,大家可以尝试着访问看看,是不是达到了这样的效果。其他频道也可以参照。这次改动没有修改动易的任何文件,所以不影响到动易程序的升级和维护。
如果大家有更好的方法,也可以告诉我,大家互相交流。
转载请注明本站 谢谢