在虚拟目录下施用KingCMS
在虚拟目录下使用KingCMS
在page/system/fun.asp中找到如下代码
public property get inst dim scriptname,l1,I1,I2,I3 if r_inst="" then I1=server.mappath("/") I2=server.mappath("../../") r_inst=replace(right(I2,len(I2)-len(I1)),"\","/")&"/" end if inst=r_inst end property
替换为
public property get inst dim scriptname,l1,I1,I2,I3,n if r_inst="" then 'I1=server.mappath("/") 'disabled by xWay scriptname = lcase(request.servervariables("script_name")) I2=lcase(server.mappath("../../")) 'r_inst=replace(right(I2,len(I2)-len(I1)),"\","/")&"/" 'disabled by xWay '----below added by xWay--------------------- I3 = split(trim(I2),"\") l1=ubound(I3) n= instr(scriptname, I3(l1)) if n>0 then r_inst = left(scriptname, n +len(I3(l1))) else r_inst = "/" end if '--------------------------------------------- end if inst=r_inst end property
同时在该文件第三行加上
<%Response.CodePage = 65001:Response.Charset = king_codepage%>
如果想要完整使用虚拟目录还要对其中模块做相应修改
1。要完整使用虚拟路径,当然模版及模块的相应地方也要改。比如将模版或模块程序里的"/"路径用{king:inst/}或xking.inst代替,这里xking是类kingcms的实例(好像大都是king来着)。 2。可以把此属性的代码移到一私有函数里,只需在启动的时候运行一次,给r_inst赋值,然后由类属性inst=r_inst得到所要的安装路径。这样应该有点点提高程序效率。 3。其实虚拟路径应该用得极少。这句r_inst = "/"似乎没有机会运行。还有如果有重复的路径名,会得到错误的安装路径,如“/kingcms/kingcms/...”.有兴趣的可以再改一下。
还有一种方法不过没试验过
在 config.asp 里 定义一下 子目录的路径 '子目录 const king_path = "/www/" 然后在 page/system/fun.asp r_inst = king_path 这里判断一下就可以了 我认为这是最简单的一种方式了,不知道 哪里有没考虑到的地方 当然这里出来一个问题 那就是 其他页面的 "../../" 必须改成 king.inst 这样就可以了