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测评]
- 做跨境电商,如何打造私域流量? 全球[VPS测评]
- EdgeNAT,香港CN2+BGP vps 带宽5M 月付72元 香港VPS[主机]
- kvmcloud怎么样?香港BGP云服务器 月付12.9元 香港VPS[主机]
- 手帕云,便宜小带宽香港CN2 VPS,集群10G防御,双向CN2直连,仅 香港VPS[主机]
- 香港vps免费:青云互联,1核1G/50G硬盘/500GB流量/2M带宽 香港VPS[主机]
- 六一云:国内BGP高防vps套餐,1核/1G/2Mbps/香港CN2,月 香港VPS[主机]
- 云群网络怎么样?香港云服务器高端弹性云2核2G2M带宽,仅588元/年 香港VPS[主机]
- 互盟云怎么样?1核2G云服务器仅468元/年,香港云主机58元/月 香港VPS[主机]
- 永恒云:江苏挂机宝6元/月,60元/年;香港建站vps仅18元;深圳BG 香港VPS[主机]
- 舍利云:香港美国vps云服务器/BGP线路元旦全场9折,低至36元/月 美国VPS[主机]
- 尊云:河南BGP云服务器2核4G仅68.6元/月,823.2元/年;香港 香港VPS[主机]
- 云米科技:新春欢庆,香港云服务器/美国高防vps服务器全场八折,支持按天 美国VPS[主机]
- 悠久云:香港云服务器低至9.9元/月;香港大带宽vps,4核4G30M仅 香港VPS[主机]
- 咖啡主机:香港1G:15.6元/月(季付),美西1G:16.8元/月(季 香港VPS[主机]
- Vmshell:200MB/S香港大宽带vps免费领取,免费云主机,不限 香港VPS[主机]
- 香港vps免备案服务器可以省掉哪些烦恼?选择哪几家好? 香港VPS[主机]
- VoLLCloud:香港1核/1G/大带宽VPS,年付赠送1个月,限购限 香港VPS[主机]
- 柚子互联:香港CN2云服务器/天机盾防护/带宽5M,34元/月 香港VPS[主机]
- 极光KVM:4月G口新品发布美国大带宽vps;香港cn2+BGP直连云服 美国VPS[主机]
- 长三角地区的算力需求规模到底有多大? 全球[VPS测评]
- 购买香港服务器需要做哪些准备 香港VPS[主机]
- 自适应bootstrap左侧导航可关闭 全球[VPS测评]
- 40火伞高压电爬坡更让企业用电于民 全球[VPS测评]
- 为什么要拥有一台VPS? 全球[VPS测评]
- 云计算到底是谁发明的? 全球[VPS测评]
- 磐逸云怎么样?CN2线路香港VPS月付20元 香港VPS[主机]
- 极客主机,优惠8折充值返25%,香港CN2VPS,日本软银VPS,新加坡 日本VPS[主机]
- VPSPlayer,超便宜香港cn2线路小带宽VPS,2核4G内存仅30 香港VPS[主机]
- wikihost,微基主机:1核/1G/15G/100Mbps/香港vp 香港VPS[主机]
转载请注明原文地址: http://140.238.13.167:12355/read-205582.html











