(转)KingCMS安装在Godaddy修改记录

CMS与SEO 04-26 阅读:2375 评论:0

第一次用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

原文地址:

http://www.s-un.cn/Article/program-code/KingCMS-install-on-Godaddy-2008-10-02-133/KingCMS-install-on-Godaddy.shtml