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

CLI内置服务器将链接重定向到根目录导致相对链接失效如何解决

问题原因

PHP内置CLI服务器的默认文档根目录是执行php -S命令时的当前工作目录,而非入口文件所在目录。
如果你在/php的上级目录启动服务,服务器根目录就是上级目录,页面相对路径会基于当前访问的URL根路径解析:当你访问http://localhost:8000/时,href="article.php"会被解析为http://localhost:8000/article.php,而非你预期的http://localhost:8000/php/article.php,因此触发404。
你之前尝试的./article.php本质和直接写article.php一致,都是指向当前URL路径下的资源;/./article.php则是指向服务器根目录下的资源,都无法命中/php目录下的文件,因此无效。

解决方案

方案1:切换到项目目录启动服务

直接进入文件存放的/php目录后再启动内置服务器,即可将/php设为根目录:

cd /path/to/your/php
php -S localhost:8000

方案2:启动时显式指定文档根目录

无需切换目录,通过-t参数直接指定根目录为/php即可:

php -S localhost:8000 -t /path/to/your/php

方案3:全局配置路径前缀(适用于需要保留上级目录为根的场景)

如果必须将上级目录作为服务器根目录,可以通过两种方式统一配置前缀:

  • 在页面<head>标签内添加base标签,所有相对链接都会基于该标签的href属性解析:
<base href="/php/">
  • 在PHP入口文件中定义全局基础路径常量,所有链接都拼接该常量:
// 入口文件顶部定义
define('BASE_PATH', '/php/');

// 链接写法
<a href="<?= BASE_PATH ?>article.php" class="post__link">Continue reading</a>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:27:03