找回密码
 注册
首页 ≡≡网络技术≡≡ 服务器 THINKPHP5,LARAVEL等项目部署在主机上无法指定PUBLIC为 ...

其它 THINKPHP5,LARAVEL等项目部署在主机上无法指定PUBLIC为运行目录

灰儿 2022-5-21 09:46:27
THINKPHP5,LARAVEL等项目部署在虚拟主机上无法指定PUBLIC根目录解决方案
众所周知用虚拟主机站点都是默认的wwwroot目录,虚拟主机的默认跟目录是无法修改的。

但是thinkphp程序部分程序在开发的时候没有调整对应的程序入口,就需要网站访问默认指向到Public目录,其实不只tp,现在很多框架默认都把web对外的访问放在public下面了,为了网站更加安全鱼与熊掌不能兼得啊 。


方案一:传统方式,把入口文件和伪静态配置文件,移到根目录。https://www.xiunima.com/136.html

方案二:根目录下新建apache服务的301跳转配置文件。不推荐。

补充1:

我在根目录下的添加了一个index.php入口文件,然后访问,没有问题,此时,我将根目录下的think“命令行入口文件”删除,则运行出错。再恢复think“命令行入口文件”,访问又正常了。这个根目录下的think“命令行入口文件”是一个必须有文件吗?

zdz232018年06月14日
问题出在核心代码thinkphp\library\think\Loader.php文件,第68行,判断think文件是否存在,如果不存在,则通过dirname()将目录减少一级。所以,如果index入口文件如果是在public目录下,这样是没有问题的,如果index入口文件是放在项目根目录下,这时候就会有问题了,为了不修改核心代码,可以在根目录下放一个空的think文件即可。如果觉得不爽,就可以在这个核心代码位置,按自己的需求修改一下。
http://www.thinkphp.cn/topic/57528.html

补充2:有时候会报错“找不到模块”,加上index.php就正常。这是.htaccess伪静态规则不对。部署环境不同,有时候加?,有时候不加。




您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。