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
- HostKvm 全场 8 折 美国高防 7 折美国VPS[主机]
- UOvZ 劳动节促销,泉州 cn2 大带 vps 七折,100M 独享三独立服务器[U]
- 双十一 腾讯云智惠上云提前购→1 核 2G 套餐年付 88 元 2 核 全球[VPS测评]
- 微信支付→支付失败!当前页面的 URL 未注册全球[VPS测评]
- 促销 hosteons→OpenVZ 全场 5 折 KVM 全场 8 折全球[VPS测评]
- 网速一般-ShockHosting→$3.7 月 200G 硬盘 美国洛美国VPS[主机]
- 便宜 VPS 八月服务器特价 美国 VPS 全线八折 raksmart美国VPS[主机]
- vultr 韩国 vps 云服务器上线,三网直连,按小时计费,1 核 1韩国VPS[主机]
- 华为云→香港 北京 上海 广州等云速建站 不限流量 8GB 空间 年付 虚拟空间(主机)
- 补货通知 搬瓦工 CN2 GIA 三网直连线路$49.99 年付机器补货全球[VPS测评]
- 疯狂猜成语 图猜成语一个人在唱歌一个人在哭泣是什么成语?全球[VPS测评]
- 私有文档、源码、软件目录列表程序:Zdir全球[VPS测评]
- WordPress免插件代码实现Gravatar头像缓存全球[VPS测评]
- 通过whos.amung.us实时统计WordPress博客在线人数全球[VPS测评]
- dynadot国外域名注册商 .xyz域名首年注册仅8元,两年付52元;全球[VPS测评]
- WordPress知名主题DUX、JustNews、November、E全球[VPS测评]
- Linux VPS 一键 自动DD安装Windows CentOS DeWINDOWS
- HKServerSolution → 2G 内存 20G HDD 2T单全球[VPS测评]
- 2019黑五: PacificRack → 2C 1G RAM 30G全球[VPS测评]
- 又有美议员窜访台,中国驻美大使馆:“中方将对美国的挑衅采取果断的反制措施美国VPS[主机]
- 华为S2300 系列交换机如何修改密码?全球[VPS测评]
- 网站迁移服务器是如何运作的?新手站长看完这篇文章,很容易就能看完。全球[VPS测评]
- CubeCloud,靠谱的香港cn2vps,美国cn2终身九折,原生IP美国VPS[主机]
- sugarhosts:虚拟主机3折(有独立IP),云服务器5折,香港\\独立服务器[U]
- 恒创主机优惠码85折_服务器优惠券8折_恒创科技优惠_代金券全球[VPS测评]
- 轻云互联,香港VPS月付22元 美国VPS月付19元美国VPS[主机]
- 恒创科技:香港免备案CN2线路VPS/美国CN2直连VPS,月付28元起美国VPS[主机]
- 适合美容院的正能量抖音文案,唯美阳光,正能量满满全球[VPS测评]
- 购买香港服务器需要做哪些准备香港VPS[主机]
- 2020年国外VPS哪个最好?教你学会选择国外VPS全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-214440.html











