xampp中thinkphp伪静态核心是apache将请求兜给index.php且框架正确解析路径:需启用mod_rewrite模块、在public目录放正确.htaccess、开启url_route_on并确保allowoverride all生效。

在 XAMPP 中用 ThinkPHP 做伪静态,核心就两件事:Apache 必须把请求兜给 index.php,且 ThinkPHP 路由必须能正确解析路径。光改 .htaccess 或只开路由,90% 会失败。
mod_rewrite 模块没启用,.htaccess 就是废文件
XAMPP 默认不启用重写模块,.htaccess 再规范也压根不执行。打开 xampp\apache\conf\httpd.conf,做两件事:
- 搜索
#LoadModule rewrite_module modules/mod_rewrite.so,删掉开头的# - 搜索
<directory></directory>(路径以你实际 DocumentRoot 为准),确认里面包含AllowOverride All—— 如果是AllowOverride None,改掉再重启 Apache
改完不重启 Apache,所有配置都白搭。验证方式:访问 http://localhost,点“phpinfo()”,搜 rewrite,看到 mod_rewrite 在 loaded modules 里才算成功。
.htaccess 放错位置或内容不匹配 TP 版本,直接 404
ThinkPHP 的入口文件位置变了:TP5/6 默认入口在 public/ 目录下,不是项目根目录。所以 .htaccess 必须放在 public/ 里,不是 htdocs/myproject/ 根目录。
内容不能照搬网上老教程。XAMPP + TP6 推荐用这个:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
注意三点:
-
RewriteBase不要加 —— XAMPP 默认 DocumentRoot 是htdocs,如果你项目在htdocs/myproject/public,就得加RewriteBase /myproject/public/ - 别用
index.php?path=那种写法,TP6 默认走PATH_INFO模式,index.php/$1才对 -
[PT]必须保留,否则 FastCGI 下会丢路径信息,request()->url()拿不到原始路径
Nginx 用户别在这儿找答案,XAMPP 没 Nginx
XAMPP 自带的是 Apache,不是 Nginx。网上那些 try_files、location ~ \.php$ 的配置,对 XAMPP 完全无效。硬套进去只会让 Apache 启动失败,报 Invalid command 'try_files' 错误。
如果你非要用 Nginx,得换集成环境(如 Laragon、XAMPP-Nginx 分支),或者自己装独立 Nginx。XAMPP 的 apache_start.bat 只认 Apache 配置。
ThinkPHP 路由开关没开,URL 再漂亮也 404
服务器转发对了,框架自己不接招也不行。检查 config/app.php(TP6)或 application/config.php(TP5):
-
'url_route_on' => true必须为true(TP6 默认已开) -
'pathinfo_depr' => '/'要和.htaccess里的分隔符一致,不能是'-'或'.' - 如果用了子目录部署(比如
http://localhost/myproject/),还要配'app_host' => 'localhost/myproject'或设置APP_SUB_DOMAIN_DEPLOY
最后测试:访问 http://localhost/myproject/public/user/profile(假设路由存在),而不是 http://localhost/myproject/public/index.php/user/profile。前者能进控制器,后者说明伪静态没生效。
最容易被忽略的是入口目录和 .htaccess 位置的错位,以及 AllowOverride All 漏改了嵌套的 <directory></directory> 块 —— XAMPP 有时有多个 <directory></directory> 段,只改最外层不够。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











