本帖最后由 宝塔用户_gapymd 于 2026-1-6 14:43 编辑
复现版本:
(稳定版) v10.0.2-LTS PHP74
/www/server/nginx/conf/fastcgi.conf
...省略部分
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param HTTP_HOST $host;
正常版本 9.6.0 没这个参数
问题影响:
正常情况下HTTP_HOST是会输出当前的域名+端口(80 443时候会隐藏),业界约定 HTTP_HOST 的默认表现默认就是这样。
但因为fastcgi默认参数里有一个错误的 HTTP_HOST 把端口给覆盖掉了,就没了端口造成代码报错。不写这个参数是正常的,如果写也应该写成 fastcgi_param HTTP_HOST $http_host;
不知道为什么要加这个参数
测试代码:
- <font color="#efb080">echo</font> <font color="#e394dc">"HTTP_HOST: "</font> <font color="#d6d6dd">.</font> <font color="#d6d6dd">$_SERVER[</font><font color="#e394dc">'HTTP_HOST'</font> <font color="#d6d6dd">.</font> <font color="#e394dc">"<br>"</font><font color="#d6d6dd">;</font>
- <font color="#efb080">echo</font> <font color="#e394dc">"SERVER_NAME: "</font> <font color="#d6d6dd">.</font> <font color="#d6d6dd">$_SERVER[</font><font color="#e394dc">'SERVER_NAME'</font> <font color="#d6d6dd">.</font> <font color="#e394dc">"<br>"</font><font color="#d6d6dd">;</font>
- <font color="#efb080">echo</font> <font color="#e394dc">"SERVER_PORT: "</font> <font color="#d6d6dd">.</font> <font color="#d6d6dd">$_SERVER[</font><font color="#e394dc">'SERVER_PORT'</font> <font color="#d6d6dd">.</font> <font color="#e394dc">"<br>"</font><font color="#d6d6dd">;</font>
复制代码
|
|