官方建议不要将fastadmin(适用于fastadmin cms插件)入口文件移动至根目录,因为这可能会出现安全问题。但只有选择了阿里云虚拟主机作为网站服务器的朋友才知道心中的痛苦。本人试着在网上寻求解决办法,也一直未果。无奈只能自己想办法解决了,功夫不负苦心人,终于在结合fastadmin创始人Karson 关于“如何将public中的index.php移动到项目根目录”的文章基础上展开多番调试后,总算基本解决了存在的问题。
配置操作的前提是:将网站根目录设置为fastadmin,不做任何修改安装了fastadmin框架及简易博客插件(此时你的博客访问地址应该为:http://域名/public/blog或者http://域名/public/addons/blog)
第一步、将public目录下的index.php、admin.php、install.php、route.php和.htaccess等5个文件移动到项目根目录(也就是fastadmin目录)。但assets、uploads这两个文件夹务必保留在public目录中,因为FastAdmin中的插件和上传都使用了public这个目录,移动之后会导致插件不可用。
注意:你可能看不到admin.php文件,因为通过fastadmin初始安装后admin.php会生成为随机名字的php(如我测试的网站生成的为I3C169Ec8x.php),也就是后台文件,你可以再一次重命名为容易记忆的名字,但不建议改名为admin。
第二步、修改入口文件index.php和admin.php文件。将这两个文件代码中的/../修改为/
第三步、配置苦恼的cdnurl
1.修改application/extra/site.php中的cdnurl的值为/public
2.修改application/extra/upload.php 中的cdnurl改为/public
这里解决了一部分图片显示问题,但附件管理图片预览任然无效(见后面的操作)
3.修改application/config.php中大概第140行__CDN__的值为/public
4.登录网站后台,在系统配置-基础配置中将cdnurl的值改为/public,可以将配置同步写入数据库。
5.附件管理列表以及博客日志从图库选择图片添加时图片预览不显示,非常不便。如下图:
解决办法是将application/admin/controller/general/Attachment.php中大约第61行$cdnurl 的变量内容直接暴力点换成'/public',如图:
6.解决博客主页区块(此时的博客预览地址是http://域名/blog)图片无法显示,将addons/blog/view/default/index.html代码大概第16和36行的两个“|cdnurl”删除,如下2个图所示:
提示:如果您还想自定义区块,可以在当前所在目录的index.html文件和common目录的sidebar.html中新增区块代码,然后在网站后台的博客管理-区块管理中添加区块,注意网站中的区块名称要和代码中的区块名称相一致。
第四步、其他问题的解决。
1.将域名地址直接指向博客。修改博客配置将伪静态的/blog删除。
此时博客访问地址为http://域名
2.解决网页标签中的标题、关键字、描述等站点信息不显示问题,便于部署到互联网后被百度收录。
将addons/blog/view/default/common/layout.html源码的标签内作如下修改,其中site表示的是站点配置信息,config表示的是博客配置信息,isset修改为empty(具体原因请参考isset和empty的区别)。
<title>{:empty($title)?$site.name:$title} - title><meta name="keywords" content="{:empty($keywords)?$config.keywords:$keywords}"/><meta name="description" content="{:empty($description)?$config.description:$description}"/>
至此,fastadmin网站入口文件移动至根目录问题基本解决,祝大家早日建设好自己
(同样适用于fastadmin cms插件)
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。