网站紫荷精灵http://www.zihe.net 采用kingcms 系统,以前没有用过kingcms文章系统,最近看了看用起来还算比较爽手,感谢kingcms以Since 为首的团队的努力,做出这么好的作品,而且代码开源。网站上线后,起初网站的Url目录比较深,我也没太注意,后来一位朋友提醒了我。url路径对优化相当不利,改吧。
起初的URL目录为:http://www.zihe.net/shimian/2009/07/12/181/index.htm
需要修改成的URL目录为:http://www.zihe.net/shimian/20090712181.htm
现在要做的就是如何批量快速的把网站中所有的目录URL改过来。
首先排除一个个文章修改,这不是程序员的思维。虽然对程序没有研究过,还是看看代码看有没有什么发现吧。一边看代码一边通过搜索手段也获取到一些信息,如下这篇文章:kingcms文章默认路径的修改一篇文章总结的不错。
打开admin/article/index.asp
搜索:
data(5,0)=1
data(11,0)=art.lang("common/pinyin")
ID 文件格式
data(11,0)=king.neworder("kingart","artid")&"."&split(king_ext,".")(1)
日期+id 文件格式
data(11,0)=year(now)&month(now)&day(now)&king.neworder("kingart","artid")&"."&split(king_ext,".")(1)
小注:这样生成的格式是:200931210.htm,个人感觉2009031210.htm好些,日期前补个0吧 代码改动一下搞定:
data(11,0)=year(now)&king.doublee(month(now))&king.doublee (day(now))&king.neworder("kingart","artid")&"."&split(king_ext,".")(1)
用日期+ID 文件夹方式
data(11,0)=formatdate(now,2)&"/"&king.neworder("kingart","artid")
拼音方式
data(11,0)=art.lang("common/pinyin")
按照(日期+id 文件格式)改了之后,发现新添加文章默认的是日期格式,首先解决了新加文章的路径问题。全部生成目当和文章后发展没有变化。说明改的地方肯定不对,其实这篇文章的思路和现在要处理的问题,并不是一回事儿,只是自己没有看清而已。
后来想到这些Url格式应该存到数据库中了,所有的操作应该调用数据库的内容。打开数据库再打开存放文章的表kingart,果不其实,发现了artpath 字段存放着目录路径。如下图所示。在网站后台中按日期格式新添加一篇文章后,打开数据库发现由原来的2009/06/29/10 变成了 2009062910.htm 。这样问题就简单了,数据库中,artpath 内容都改一下不就OK了。

说干就干,批量改动数据库还是小case 一件,代码如下,运行,替换,很流畅,完毕。
以下是代码片段:
<%Server.ScriptTimeOut=500000000%>
<%response.buffer=true%>
<%
Dim objconn,conn
Dim RsTemp,sTContent
Dim t1,t2
const db = "/db/King#Content#Management#System.mdb" ’数据库路径
objconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mapPath(db)
set conn=server.createobject("adodb.connection")
conn.open objconn
set RsTemp=server.CreateObject("Adodb.recordset")
RsTemp.open "select * from kingart",conn,1,3 ’连接数据库
Do while not RsTemp.eof
t1=""
t2=""
sTContent=RsTemp("artpath")
t2=split(sTContent,"/")
for i=0 to ubound(t2)
t1=t1&t2(i)
next
sTContent=t1
RsTemp("artpath")=sTContent
RsTemp.UpDate
RsTemp.movenext
response.clear
response.write "数据更新中......"
Loop
RsTemp.Close : Set RsTemp=Nothing
Response.Write "更新成功!"
%>
用法:把上述代码另存一个名字如 r.asp 把这个文件放到网站目录中,注意改动数据库的名字和路径啊,然后在地址栏敲下代码 http://www.zihe.net 接着敲入r.asp 运行。
数据库替换内容字段替换完毕,上传到空间中,在后台把所有目录和文章重新生成一下,看到这些可爱的Url路径的网页在生成,挺高兴。