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

为何所有请求都指向index.php?PHP内置服务器路由疑问

PHP内置Web服务器的URL自动转发机制解析

问题场景

你的项目结构如下:

project
|_src
|_public
  |_index.php

在public目录下启动PHP内置Web服务器:

php -S localhost:8000

此时访问任意不存在的路径(比如http://localhost:8000/random/request/uri),所有请求都会被导向index.php,终端输出如图:
PHP内置服务器终端输出

原因与实现逻辑

这是PHP内置Web服务器的默认 fallback 行为,专门用来适配前端控制器模式(大部分PHP框架的核心路由模式)和单页应用路由需求:

  • 当内置服务器收到请求时,首先会检查请求的URI是否对应服务器当前工作目录下的真实文件或目录;
  • 如果请求路径对应的文件/目录不存在,服务器会自动将请求转发到当前目录下的index.php(若index.php不存在才会尝试index.html);
  • 被转发的请求会保留原始的URI信息,你可以在index.php里通过$_SERVER['REQUEST_URI']获取到用户请求的完整路径,从而实现自定义的路由分发逻辑。

推荐搜索关键词

如果想深入查找相关文档或资料,可以用这些关键词:

  • PHP内置Web服务器 路由 fallback
  • PHP built-in web server index.php rewrite
  • PHP 前端控制器模式 内置服务器

内容的提问来源于stack exchange,提问作者Hải Phạm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:22:01