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、应用报错还是返回了无法识别的图片,再检查重写、会话及相关扩展。重写规则不能解决所有验证码失败。
