ThinkPHP6在Apache下实现伪静态需三步:一、启用mod_rewrite模块并取消注释LoadModule;二、将public目录的AllowOverride设为All且配置Options FollowSymLinks;三、在public目录下创建.htaccess文件,内容含RewriteEngine On及RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]规则。

ThinkPHP6 接口在 Apache 下实现伪静态,核心目标是把形如 /api/user/list 这样的请求,内部转发到 index.php 入口统一处理,同时隐藏 index.php,让 URL 更简洁、规范,也利于 API 路由识别和 SEO(对管理类接口也有意义)。
确认 mod_rewrite 模块已启用
这是所有伪静态的前提。打开 Apache 的主配置文件(如 httpd.conf 或 XAMPP/WAMP 中对应路径),查找这一行:
#LoadModule rewrite_module modules/mod_rewrite.so
去掉开头的 #,确保它生效;若整行不存在,就在 LoadModule 区块末尾手动添加:
LoadModule rewrite_module modules/mod_rewrite.so
允许 .htaccess 文件生效
找到你项目 public/ 目录对应的 <directory></directory> 配置块(不是网站根目录,而是 TP6 的 web 入口目录,例如 D:/project/public),将其修改为:
Options FollowSymLinks-
AllowOverride All(必须是 All,不能是None或FileInfo) Require all granted
改完需重启 Apache 才能生效。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
在 public 目录下配置 .htaccess
确保 public/.htaccess 文件存在且内容如下(这是 TP6 官方推荐精简版):
<ifmodule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
<pre class="brush:php;toolbar:false;"># 排除真实存在的文件或目录(如 favicon.ico、static/ 等)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 将所有请求重写到 index.php,并传递原始路径作为 PATH_INFO
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
注意:不要写 RewriteBase —— TP6 的 public/ 目录通常直接作为 Web 根目录,无需设置基准路径;写反而容易导致路由解析异常。
验证与常见问题
配置完成后,访问 https://yourdomain.com/api/user/info 应能正常响应,而不是 404 或显示 index.php 路径。
- 如果提示
Internal Server Error:检查.htaccess语法是否正确,特别是引号、空格、换行;也可临时注释部分规则逐步排查 - 如果仍显示
index.php:确认浏览器没缓存旧重定向,或检查是否误将.htaccess放在了root而非public目录 - 如果接口返回 404(但
index.php可访问):说明重写成功,但 TP6 路由未匹配,检查route/app.php是否正确定义了api/前缀路由










