ThinkPHP6.0在Apache上无法运行,90%原因是mod_rewrite未启用、.htaccess不生效或DocumentRoot未指向public目录;需确认LoadModule rewrite_module已启用、对应Directory块中AllowOverride设为All、且DocumentRoot精确配置为public路径。

ThinkPHP6.0 在 Apache 上跑不起来,90% 是因为 mod_rewrite 没开、.htaccess 不生效、或入口路径没对准 public 目录 —— 不是代码问题,是 Apache 配置漏了关键几步。
确认 mod_rewrite 模块已启用
Apache 默认可能禁用重写模块,TP6 的 URL 重写(如隐藏 index.php)完全依赖它。
- 打开
httpd.conf(XAMPP 在XAMPP\apache\conf\httpd.conf,宝塔在/www/server/apache/conf/httpd.conf) - 搜索
mod_rewrite.so,确保这行未被注释:LoadModule rewrite_module modules/mod_rewrite.so - 如果前面有
#,删掉;改完必须重启 Apache,否则无效
AllowOverride 必须设为 All
.htaccess 文件只在 Apache 明确允许时才起作用。默认 AllowOverride None 会直接忽略你的伪静态规则。
- 找到对应站点的
<Directory>块,通常是针对public目录的配置(例如<Directory "D:/project/tp6/public">) - 把里面的
AllowOverride None改成AllowOverride All - 如果整个站点都托管在
public下,也要检查根目录的<Directory "/">块,同样要设AllowOverride All - 别漏掉
Require all granted,否则会报 403 错误
伪静态规则要匹配 TP6 的 PATH_INFO 行为
TP6 默认使用 PATH_INFO 模式解析路由,.htaccess 规则必须把请求正确转发给 index.php 并透传原始路径。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
立即学习“PHP免费学习笔记(深入)”;
- 确保
.htaccess放在public目录下(不是项目根目录) - 内容推荐用这个稳定版本(兼容 Apache 2.4+,不依赖
RewriteBase):<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule> - 不要用
index.php?/$1这种带问号的写法 —— PHP 8.0+ 和某些 Apache 配置下会导致$_SERVER['PATH_INFO']为空,路由匹配失败 - 如果用了多应用或子域名绑定,规则本身不用改,但要确保
public是 Web 根目录,否则index.php找不到
虚拟主机 DocumentRoot 必须指向 public 目录
这是最容易被忽略的一点:Apache 的文档根目录(DocumentRoot)必须是 TP6 的 public,而不是项目根目录。
- 在
httpd-vhosts.conf或宝塔网站设置中,检查DocumentRoot路径,例如:DocumentRoot "D:/project/tp6/public" - 同时匹配的
<Directory>路径也必须一致,否则AllowOverride All不生效 - 如果硬要让根目录指向项目目录(不推荐),就得把
public里的所有文件(含index.php、.htaccess)挪上去,并修改index.php中的__DIR__ . '/../vendor/autoload.php'等路径 —— 容易出错且不安全
真正卡住人的地方往往不是规则写得有多复杂,而是 DocumentRoot 指错了目录、或者 AllowOverride 在错误的 <Directory> 块里改了。Apache 不报具体原因,只给 404 或 500,务必逐项核对路径和权限配置。


















