(转)KingCMS安装在Godaddy修改记录
第一次用Godaddy的时候安装KingCMS的时候遇到问题了.所以加入了KingCMS的群.结果.半年过去了.问题也没解决了.
前几天.ASH解决了.这里转帖下解决办法.顺便夸下.ash真是蛮强大.哈哈
-----------------------------
启用了一个 Godaddy Deluxe Hosting - Windows的主机
关于Godaddy的安装配置这里就不再叙述了,不明白可以留言。
对于Kingcms,因为程序是可以安装在子目录的,Kingcms会用程序自动探到文件安装的目录。而Godaddy是域名绑定在子目录上,这就造成了比如一个米
http://www.baobao100.cn是绑定在Godaddy FTP空间里的Baobao这个目录,那么用http://www.baobao100.cn/可以正常访问,用http://www.baobao100.cn/baobao/的路径也可以访问。
虽然说不造成特别大的影响但链接全部都变成了http://www.baobao100.cn/baobao/Info/yjzx/132119141.shtml这样的模式而不是http://www.baobao100.cn/Info/yjzx/132119141.shtml这样的模式,包括图片什么的都会多一级目录。
其实问题并不太大,出于对seo和安全的考虑,其实也算不上seo,只是我不想显示主文件的名字在外面而已,做了一些修改。
首先找到page/system/fun.asp这个文件,打开搜索'inst这个字符
大概是在231行这样子
public property get inst
dim scriptname,l1,I1,I2,I3
if r_inst="" then
I1=server.mappath("/")
I2=server.mappath("../../")
if instr(I2,I1)>0 then
r_inst=replace(right(I2,len(I2)-len(I1)),"\","/")&"/"
else
error lang("error/virtualdirectory")&"<br/>"
end if
end if
inst=r_inst
end property
将I2修改为 I2=server.mappath("../../../")
修改理由是,原来的是读出站点物理路径然后再读出文件所在的路径,再计算出实际安装的主目录。
我的因为是用的域名绑定二级目录而不是主目录,所以多一级目录,如果在Godaddy里是安装在三级目录那么这个地方也跟着变成 I2=server.mappath("../../../../")根据需要进行修改。
到这里其实问题就修改完成了,因为Godaddy是可以直接用米访问二级目录的,所以没什么问题。
但如果使用了AD模块中的{king:ad name="xxxx" type="ssi"}这个标签就会有问题了,因为ssi是读实际物理路径的,那么就再修改这个文件Page/ad/Fun.asp
打开文件搜索select case lcase(adtype)
大概在146行
select case lcase(adtype)
case"js"
I1="<span id=""k_ad_"&adname&"""></span><script type=""text/javascript"">gethtm('"&king.inst&t_ad.path&"/"&adname&t_ad.ext&"','k_ad_"&adname&"');</script>"
case"jscode"
I1="<script type=""text/javascript"" src="""&king.inst&t_ad.path&"/"&adname&t_ad.ext&"""></script>"
case"ssi"
I1="<!-- #include virtual="""&king.inst&t_ad.path&"/"&adname&t_ad.ext&""" -->"
case"iframe"
I1="<iframe frameborder=""0"" id=""k_ad_"&adname&""" scrolling=""no"" width="""&rs(0)&""" height="""&rs(1)&""" src="""&king.inst&t_ad.path&"/"&adname&t_ad.ext&"""></iframe>"
源文件是这样
替换成
select case lcase(adtype)
case"js"
I1="<span id=""k_ad_"&adname&"""></span><script type=""text/javascript"">gethtm('"&king.inst&t_ad.path&"/"&adname&t_ad.ext&"','k_ad_"&adname&"');</script>"
case"jscode"
I1="<script type=""text/javascript"" src="""&king.inst&t_ad.path&"/"&adname&t_ad.ext&"""></script>"
case"ssi"
I1="<!-- #include virtual=""/baobao"&king.inst&t_ad.path&"/"&adname&t_ad.ext&""" -->"
case"iframe"
I1="<iframe frameborder=""0"" id=""k_ad_"&adname&""" scrolling=""no"" width="""&rs(0)&""" height="""&rs(1)&""" src="""&king.inst&t_ad.path&"/"&adname&t_ad.ext&"""></iframe>"
红色部分是我的二级文件夹的名字,其他的也可以加上,但我测试过iframe jscode js其实都不会有问题。
修改到这结束。
其实可以再加一个参数来计算这个,只是动的就比较多了,先暂时这样用,如果出现其他问题的话就再改。据我的了解,KingCMS读物理路径的地方并不多。
另外再记录一个虚拟目录安装KingCMS的方法
在page/system/fun.asp里修改,如有问题欢迎讨论.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)),"\","/")&"/"
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
原文地址: