腾讯云部署ThinkPHP5伪静态失效主因是PATH_INFO未传递、入口路径错配及运行目录未设为/public;须在PHP location块添加fastcgi_param PATH_INFO $fastcgi_path_info,伪静态规则指向/public/index.php,并将宝塔运行目录设为/public。

腾讯云轻量应用服务器或CVM上部署ThinkPHP5,伪静态失效不是规则写得不够“标准”,而是服务器转发路径、入口文件位置和PATH_INFO解析三者没对齐——尤其在腾讯云默认Nginx配置下,public目录常被忽略,PATH_INFO根本没传进来。
腾讯云Nginx必须补全fastcgi_param PATH_INFO
TP5依赖$_SERVER['PATH_INFO']解析路由,但腾讯云Nginx默认不传递该变量。缺了这行,访问任何非首页URL都会直接报错“URL pathinfo not supported”。
- 编辑站点配置(如
/etc/nginx/conf.d/your-site.conf或宝塔中对应配置) - 在
location ~ \.php$块内,紧挨fastcgi_param SCRIPT_FILENAME下方添加:
fastcgi_param PATH_INFO $fastcgi_path_info;
注意:不能写成$path_info或漏掉$,也不能放在location /里——只在PHP处理块生效。
伪静态规则必须指向/public/index.php,不是/index.php
腾讯云控制台或宝塔面板里选“ThinkPHP”模板会自动填入/index.php?s=规则,但TP5.1+强制入口在public/子目录,用错路径就是404。
腾讯云通用票据识别高级版(VatInvoiceOCR)接口调用技能。当用户需要识别发票图片中增值税专用发票、增值税普通发票、增值税电子专票、增值税电子普票、电子发票(普通/增值税专用)的全字段信息时,应使用此技能。支持识别发票图片中的发票代码、发票号码、开票日期、合计金额、校验码、税率、合计税额、价税合计、购买方...
- 正确规则(推荐
try_files写法):
location / {
try_files $uri $uri/ /public/index.php?$query_string;
}
- 若用
if + rewrite(腾讯云某些旧版Nginx更稳定):
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /public/index.php?s=$1 last;
}
}
last不能换成break,否则重写后不重新匹配PHP location块,请求卡死。
宝塔用户务必设运行目录为/public
腾讯云镜像装宝塔后,默认网站运行目录是项目根目录(含application),但TP5实际入口是public/index.php。不改这个,$_SERVER['DOCUMENT_ROOT']就错了,runtime目录写入失败,缓存全崩。
- 宝塔后台 → 网站 → 你的站点 → 设置 → 运行目录 → 选
/public - 同时确认
/public下有.htaccess(Apache)或已禁用(Nginx)——Nginx不读它 - 权限检查:
chown -R www:www /path/to/your/project/public/runtime
最易被忽略的点:腾讯云轻量服务器默认关闭rewrite_module,且Nginx配置里include fastcgi_params可能覆盖你手动加的PATH_INFO。动手前先nginx -t校验,再systemctl reload nginx,别信“保存即生效”。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










