浩强的主页
世界上最幸福的事 莫过于为理想而奋斗

关于虚拟主机thinkphp 关于隐藏程序自动生成的public的方法

1、当前有很多网站都是用thinkphp做的。但是tp5的入口文件在public下。若上传到主机商的虚拟主机中可能遇到网站根目录的问题。

因为大多数虚拟主机商不支持修改网站的根目录。都是固定的wwwroot。

以下以linux下主机为例:

使用伪静态修改网站入口位置为public

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L]
</IfModule>

但是这样会导致请求url中含有public,thinkphp会在助手函数url()生成的地址中自动加上public。


2、去掉public的方法。

找到源头调整。位置thinkphp/library/think/下Url.php


self::$bindCheck = false  #找到这行位置,在后面加上
或者是$this->bindCheck = false; 大概234行
if(preg_match('/public/', $url)){
            $url = preg_replace('/\/public\//', '/', $url);
        }

搞定。

上一篇
centos7.6安装vsftp
下一篇
python 字符串方法笔记

关于本站

好记性不如烂笔头