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 规则。