You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP无框架MVC路由404错误排查求助(XAMPP环境)

无框架PHP MVC路由404问题排查

问题背景

使用XAMPP搭建无框架PHP MVC系统,访问http://localhost/home返回404错误(对象未找到)。已启用.htaccess的RewriteEngine并配置重写规则,编写了路由文件、控制器及入口文件,但路由无法正常工作,不确定.htaccess是否生效,需排查路由问题。

排查及修复方案

1. 验证.htaccess是否生效

  • 快速验证方法:在.htaccess中添加无效规则(比如TestRule),访问任意页面。若返回500错误,说明.htaccess已被Apache解析;若仍返回404,说明AllowOverride配置未生效。
  • 目录权限配置检查:你的httpd.conf配置针对/var/www/htdocs/Sistema,但入口文件路径是/Sistema/ccbsys/auth/src/index.php。需确认.htaccess所在目录(如Sistema/ccbsys/auth/src)是否在httpd.conf中配置了AllowOverride All,否则Apache会忽略.htaccess规则。

2. 修正重写规则路径

当前.htaccess重写规则使用绝对路径,可能导致跳转错误:

RewriteRule ^(.*)$ /Sistema/ccbsys/auth/src/index.php  [L]
  • 若.htaccess与index.php在同一目录,改为相对路径:
RewriteRule ^(.*)$ index.php [L]
  • 若.htaccess在项目上级目录,调整为对应相对路径:
RewriteRule ^(.*)$ ccbsys/auth/src/index.php [L]

3. 修复路由URI匹配逻辑

入口文件中$_SERVER['REQUEST_URI']会返回完整路径(如/Sistema/ccbsys/auth/src/home),但路由定义的是/home,导致匹配失败:

// 当前代码
$url = $_SERVER['REQUEST_URI'];
  • 提取相对路由修复:
// 项目基础路径(根据实际部署路径调整)
$basePath = '/Sistema/ccbsys/auth/src';
// 去除基础路径,得到纯路由部分
$url = str_replace($basePath, '', $_SERVER['REQUEST_URI']);
// 去除末尾斜杠,统一路由格式
$url = rtrim($url, '/');

4. 修正控制器调用逻辑

当前入口文件调用$controller->$action();后又重复调用$controller->render();,且控制器render()仅返回字符串未输出:

// 当前控制器代码
class DashboardController {
    public function render() {
        return ("TESTE");
    }
}
  • 方案1:让控制器方法直接输出内容
class DashboardController {
    public function render() {
        echo "TESTE";
    }
}
  • 方案2:在入口文件处理返回值
$result = $controller->$action();
echo $result;
// 无需重复调用$controller->render();

5. 检查文件路径与目录结构

  • 确认routes.php在Routes/目录下,入口文件中include('Routes/routes.php');的相对路径正确。
  • 确认DashboardController.php在Controller/目录下,$controllerFile = 'Controller/' . $controllerName . '.php';的路径正确。

验证流程

  1. 先确认.htaccess生效,再修正重写规则路径。
  2. 调整路由URI匹配逻辑,确保能匹配到定义的路由。
  3. 修正控制器调用逻辑,确保内容正确输出。

内容的提问来源于stack exchange,提问作者Xiter Malo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:35:14