求助:PHP require报错No such file or directory排查仍未解决
解决404错误的步骤
1. 配置.htaccess重写规则
Apache需要通过.htaccess将所有请求转发到入口文件,否则会直接查找物理文件导致404。在public目录下创建.htaccess文件,写入以下内容:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [L]
2. 剥离请求URI中的查询字符串
$_SERVER['REQUEST_URI']会包含?开头的查询参数(比如/listings?page=1),而你的路由数组中没有这类带参数的键,导致匹配失败。修改代码剥离查询字符串:
// 替换原有的$uri = $_SERVER['REQUEST_URI']; $uri = strtok($_SERVER['REQUEST_URI'], '?');
3. 验证basePath函数的路径拼接逻辑
确保helpers.php中的basePath函数能正确生成文件路径,例如:
function basePath($path) { return __DIR__ . '/' . $path; }
注意你的入口文件在public目录,helpers.php在上级目录,__DIR__会指向helpers.php所在目录,拼接后需确保路径正确指向目标控制器文件。
4. 重启Apache服务
修改VirtualHost或.htaccess配置后,必须重启Laragon中的Apache服务才能让配置生效,可通过Laragon右上角菜单的Apache选项选择Restart操作。
内容的提问来源于stack exchange,提问作者user14367514
相关产品推荐
相关产品推荐

