↓ 跳过正文

ThinkPHP使用nginx后无法显示验证码的问题

正能量 1 分钟阅读 更新于 2026-10-18

说明 ThinkPHP 验证码在 Nginx 环境中的重写排查方向,区分路由与图片生成问题。

ThinkPHP使用nginx后无法显示验证码的问题:原站配图。
location / {
 root /var/www;
 index index.html index.htm index.php;
 if (!-e $request_filename) {
 rewrite ^/index.php(.*)$ /index.php?s=$1 last;
 rewrite ^(.*)$ /index.php?s=$1 last;
 break;
 }
}

用以上的url重写规则就可以了。

补充阅读
#

说明 ThinkPHP 验证码在 Nginx 环境中的重写排查方向,区分路由与图片生成问题。

如何理解与使用
#

原文重写规则把请求交给入口脚本,适用于特定年代的路径约定;移植前确认实际入口位置、路径参数和 ThinkPHP 版本。

验证与边界
#

先看验证码请求是 404、应用报错还是返回了无法识别的图片,再检查重写、会话及相关扩展。重写规则不能解决所有验证码失败。