php curl 301 无效 php curl 网页不自动跳转 php CURLOPT_FOLLOWLOCATION 选项无效的解决办法
![]() | ![]() | ![]() | ![]() |
| 【性价之王】 | 【线路之王】 | 【价格之王】 | 【配置之王】 |
| 【免费之王】 | 【香港首推】 | 【梯子之王】 | 【独服之王】 |

最近突然有同学反馈说微服务系统新用户无法绑定了,绑定功能是通过 curl 登录正方教务系统进行用户验证的,经过检查发现是因为新更换了服务器,程序 curl 登录正方教务系统时无法自动跳转链接。
在 php 中 curl 通过设置 CURLOPT_FOLLOWLOCATION 选项来设置是否自动跟随跳转链接,如果该选项为 true 或 1 则自动跳转,否则不会自动跳转。如果你是新开发的程序,那么首先检查 curl 代码中是否设置了 CURLOPT_FOLLOWLOCATION。
而我这里已经设置了 CURLOPT_FOLLOWLOCATION 为 true,之前也是好用的,那么初步怀疑是服务器中某些设置不兼容导致的。
经过查阅资料发现 php 中 curl 确实有一个 bug,那就是当服务器开启了安全模式或设置了 open_basedir 时,CURLOPT_FOLLOWLOCATION 配置是不起作用的,一些服务器设置的放跨站攻击就是通过 open_basedir 实现的。知道了原因就好办了,这里提供两种解决方案:
方案一:
关闭服务器安全模式或者 open_basedir 设置,这是最简单的做法,不过很多时候我们无法修改服务器的这些设置,那么请看方案二。
方案二:
使用下面的自定义函数执行 curl
function curlExec($curlOptions='', $curlHeaders='', $postFields='') { $newUrl = ''; $maxRedirection = 10; do { if ($maxRedirection<1) die('Error: reached the limit of redirections'); $ch = curl_init(); if (!empty($curlOptions)) curl_setopt_array($ch, $curlOptions); if (!empty($curlHeaders)) curl_setopt($ch, CURLOPT_HTTPHEADER, $curlHeaders); if (!empty($postFields)) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); } if (!empty($newUrl)) curl_setopt($ch, CURLOPT_URL, $newUrl); // redirect needed $curlResult = curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($code == 301 || $code == 302 || $code == 303 || $code == 307) { preg_match('/Location:(.*?)n/', $curlResult, $matches); $newUrl = trim(array_pop($matches)); curl_close($ch); $maxRedirection--; continue; } else // no more redirection { $code = 0; curl_close($ch); } } while($code); return $curlResult; }猜你可能想看的VPS
- 疯狂猜成语 图猜成语海底有一块石头是什么成语?全球[VPS测评]
- friendhosting→11 周年庆 5 折优惠 多送一倍时间 VP全球[VPS测评]
- spinservers→$119 月-Dual E5 2630L 128全球[VPS测评]
- layer.closeAll()无效的解决办法全球[VPS测评]
- 口碑不行-Hostsolutions→2 年付 70 欧元 罗马尼亚 V虚拟空间(主机)
- 新商家慎重-QSVM→10 元 月 50Mbps 宽带 500G 流量 全球[VPS测评]
- AkkoCloud→129 元 月 1GB 内存 50GB SSD 空间虚拟空间(主机)
- raksmart 近期促销的日本 cn2 无限流量服务器整理,vps 五独立服务器[U]
- 便宜 €28 每年 1 核 CPU 2G 内存 20G SSD 3T 流全球[VPS测评]
- [黑五]ITLDC→虚拟主机 2 折 VPS 四折 独立服务器 6 折 独立服务器[U]
- 便宜 VPS $25 年 2 核 CPU 4G 50G SSD 3T 流全球[VPS测评]
- 疯狂猜成语 图猜成语一把刀切断一根黄瓜是什么成语?全球[VPS测评]
- 可选中国-Oracle Cloud→永远免费的数据库和云服务;可选日本 日本VPS[主机]
- 如何在WordPress博客实现历史上的今天的小功能全球[VPS测评]
- 从Alpnames域名注册商跑路看我们应该如何选择域名注册商全球[VPS测评]
- 如何优化和加速你的WordPress博客访问速度全球[VPS测评]
- LetBox → 2G 内存 20G Nvme 256G块储存 2T流量全球[VPS测评]
- on9host 1核心 512M内存 15G 储存 500G流量 30M全球[VPS测评]
- 跨境电商平台首选香港服务器香港VPS[主机]
- 青果云:香港云主机2核1G3M30G,香港vps仅售59元/月香港VPS[主机]
- 向日葵-漏洞科普:海外云服务器三种漏洞修复方法快收藏起来!全球[VPS测评]
- CubeCloud,香港cn2,美国cn2 gia线路vps主机,2核1美国VPS[主机]
- 谷歌浏览器网址如何显示http,www,Chrome谷歌浏览器恢复地址栏全球[VPS测评]
- 跨境电商有哪些平台?十大跨境电商平台!全球[VPS测评]
- 亿速云双12年终回馈:云服务器2折活动,订单满100元减50元全球[VPS测评]
- UCloud快杰型海外云主机:可选香港/上海/北京/日本/新加坡/韩国/日本VPS[主机]
- 什么是云计算?全球[VPS测评]
- 群英云怎么样?2核2G3M华北BGP云服务器,98元/首月;香港cn2v香港VPS[主机]
- 天生云:香港沙田CN2 GIA VPS,1核1G40G/2M带宽,月付8香港VPS[主机]
- 腾讯云秒杀活动:1核/2G/上海&北京,年付99元全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-211468.html











