最近买了个Godaddy的Windows主机,发现问题比Linux的多得多,很多使用不便的地方,最常见的就属子目录网站中的文件采用相对根目录的相对路径问题,假如该Windows主机绑定域名aaa.com,建了一个子目录bbb,绑定域名bbb.com,bbb目录中有一个子目录ccc,同时在主机根目录还有另外一个子目录ccc,如果在bbb.com中使用类似/ccc的相对路径,会定位到主机根目录的这个ccc目录,而不是bbb目录下的ccc目录。
而FCKEditor的文件上传保存目录就是相对根目录的,这样麻烦就来了,如果是子目录中的网站使用FCKEditor,那上传的文件都会保存到根目录去,也许有人会想到将ConfigUserFilesPath由/uploadfiles/改为/子目录名称/uploadfiles/,但如果网站多了的话,还得一个个改,以后每加一个网站都需要改。解决这个问题我个人觉得最好的办法就是转化为绝对路径。这样也需要修改好fckeditor的相关文件,每次新加网站都用自己改造后的fckeditor就可以了。
修改方法如下(以下以fckeditor2.6.4在ASP环境中使用为例,假定fckeditor放在网站的editor目录中):
1、打开editor/editor/filemanager/connectors/asp/config.asp
修改第35行
ConfigUserFilesPath = "/userfiles/"
改为
ConfigUserFilesPath = "http://"&Request.ServerVariables("HTTP_HOST")&"/upload/"&year(now())&right("0"&month(now()),2)&"/"
2、打开editor/editor/filemanager/connectors/asp/io.asp
修改第50行
GetResourceTypeDirectory = Server.MapPath( ConfigQuickUploadPath.Item( resourceType ) )
改为
GetResourceTypeDirectory = Server.MapPath( "../../../../.." & Replace(ConfigQuickUploadPath.Item( resourceType ),"http://"&Request.ServerVariables("HTTP_HOST"),"") )
修改第56行
GetResourceTypeDirectory = Server.MapPath( ConfigFileTypesPath.Item( resourceType ) )
改为
GetResourceTypeDirectory = Server.MapPath( "../../../../.." & Replace(ConfigFileTypesPath.Item( resourceType ),"http://"&Request.ServerVariables("HTTP_HOST"),"") )
这样保存的文件便会存在网站的upload目录中,并按照月份自动新建目录。
标签:fckeditor, Godaddy