唐老鸭要上天 2022-04-06 20:16 采纳率: 0%
浏览 29

thinkphp隐藏入口文件错误,如何解决?

问题遇到的现象和发生背景

初学者学习thinkphp 使用的集成环境是phpstudy_pro 到隐藏入口路径这一直出现错误

问题相关代码,请勿粘贴截图

入口文件

<?php

    $pathinfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '' ;      //获取index.php路径后面的路径 并判断是否为空 
    echo $pathinfo;
    $route = [
        'student' => 'studentudent/index',
        'login' => 'index/user/login'
    ];
    $arr = explode('/', trim($pathinfo, '/'));   //以分号分割pathinfo路径 并去掉前后的/
    var_dump($arr);
    if(!isset($arr[2])) {  //判断路径是否是完整的
        exit('请求信息有误');
    }
    
    list($model, $controller, $action) = $arr; //分割好的值分别赋给model controller view
    define('MODEL_PATH', './' . $model . '/');  //定义模块路径为常量 路径就在当前模块下面加下model
    $controller_name = ucwords($controller) . 'Controller'; //把StudentController值赋给$controller_name
    require MODEL_PATH . 'Controller/' . $controller_name . '.php';  //获取student文件下的StudentController.php
    $student = new $controller_name();
    $student->$action();
?> 

controller:

<?php
class StudentController
{
    public function index()
    {
        require MODEL_PATH . 'model/StudentModel.php';
        $model = new StudentModel;
        $data = $model->getAll();
        require MODEL_PATH . 'viewudent.html';
    }
}
?>

model:

<?php

class StudentModel
{

    protected $link;
    public function __construct()
    {
        $this->link = new mysqli('localhost', '123', '000000', 'mytp');
        $this->link->set_charset('utf8');
    }

    public function getAll()
    {
        $sql = 'SELECT * FROM `student`';
        $res = $this->link->query($sql);
        return $res->fetch_all(MYSQLI_ASSOC);
    }
}
?>

view:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <table>
        <tr>
            <th>编号</th>
            <th>姓名</th>
            <th>性别</th>
        </tr>
        <?php foreach($data as $row): ?>
        <tr>
            <td><?=$row['id']?></td>
            <td><?=$row['name']?></td>
            <td><?=['男', '女'][$row['gender']]?></td>
        </tr>
        <?php endforeach; ?>
    </table>
</body>
</html>

.htaccess

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
//添加?与不添加都尝试过 百度好多版本也都尝试过
</IfModule>


路径:

img

httpd.conf:

img

运行结果及报错内容

img

我的解答思路和尝试过的方法

尝试过更换htaccess文件内容

我想要达到的结果

应该如下图所示:

img

  • 写回答

1条回答 默认 最新

  • 我叫猪岳今年十八 2022-04-06 20:24
    关注

    评论

报告相同问题?

问题事件

  • 修改了问题 4月6日
  • 创建了问题 4月6日

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算