fastphp icon indicating copy to clipboard operation
fastphp copied to clipboard

对于不会操作“站点根目录配置到fastphp目录” 出现控制器不存在的解决思路

Open logofun opened this issue 5 years ago • 0 comments

我知道很多免费空间没有配置站点根目录的操作权限 或者难得有一个站点,想把多个子目录利用起来的菜鸟们 运行下载的fastphp时,总会出现控制器不存在的问题

其实就是url字段出现了一个应用目录名称。 我有一个不成熟的解决思路(当然,我知道把应用目录列为站点根目录可以防止网站侵入,但fastphp的index.php并没有如TP5那样放在public目录中,所以有了现在这个思路)

在index.php中增加

// fastphp 为应用目录名
define('APP_NAME', '/fastphp');

然后再核心文件fastphp.php中调整路由函数

public function route()
    {
      .......
      $url = $_SERVER['REQUEST_URI']; 

        //用到了子目录名称"fastphp" 所以自己需要把这个删除掉 
        //在入口文件中定义了 APP_NAME
        $url = substr($url, strlen(APP_NAME));

这样在访问localhost/fastphp/index.php?{controller}/{action}就可以成功了

需要补充的是,对view中的视图 请把相关地址 增加“/fastphp”内容 如把href="/item/index"修改为 href="/fastphp/item/index"

这样才运行有效

感谢作者,一个极简的MVC phpframwork 学到很多

logofun avatar Nov 10 '19 13:11 logofun