index.php 是什么?
index.php 是 PHP 项目里最常见的入口文件,访问网站根目录时默认执行的就是它。不管是 WordPress、Laravel、ThinkPHP,还是手写的小项目,几乎都会有一个 index.php。
一、index.php 的作用
- 统一入口:所有请求先经过 index.php,再由路由分发到具体控制器。
- 自动加载:加载 Composer 自动加载器、配置文件、环境变量。
- 错误处理:设置错误报告级别、注册异常处理器。
- 初始化框架:启动应用容器、注册中间件、启动路由。
二、典型结构
<?php
require __DIR__ . '/../vendor/autoload.php';
$app = require_once __DIR__ . '/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
三、安全注意事项
- 禁止直接访问敏感文件:通过 .htaccess 或 nginx 配置阻止访问 .env、composer.json 等。
- 关闭错误显示:生产环境 display_errors 设为 Off,避免泄露路径。
- 防止目录遍历:对用户输入的文件路径做白名单校验。
- CSRF/XSS 防护:在入口层统一注入 CSRF token 和 XSS 过滤。
四、常见问题
访问 index.php 显示空白:通常是 PHP 语法错误但 display_errors 关闭,查看 error_log 定位。404:nginx/apache 没把请求转发到 index.php,检查 rewrite 规则。