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
- V5.NET:香港/美国云服务器7折月付42港元起;香港物理服务器月付3 美国VPS[主机]
- 跨境贸易和跨境电商的三大区别简单分析 全球[VPS测评]
- 云计算的三种服务模式,SaaS和PaaS的区别在哪里? 全球[VPS测评]
- 一篇漫画,看懂云计算 全球[VPS测评]
- “休闲养蜂”风靡海外跨境电商追逐垂直风口 全球[VPS测评]
- 147SEO采集器 CSS选择器写法案例 全球[VPS测评]
- 戈登云VPS,6折,充值送50%,香港cn2,美国cn云服务器,2核2G 美国VPS[主机]
- 冀青云怎么样?香港CN2-GIA vps月28元/香港NTT 月9元 香港VPS[主机]
- 无忧云怎么样?大连BGP德阳100G高防香港CN2VPS云服务器 香港VPS[主机]
- sugarhosts:虚拟主机3折(有独立IP),云服务器5折,香港\\ 独立服务器[U]
- 尊云双十二:国内4核4G5M云服务器仅28元/月,香港CN2VPS仅84 香港VPS[主机]
- 触摸云:香港BGP/香港CN2/美国GIA高防CN2 GIA云服务器2H 美国VPS[主机]
- 阿里云香港vps怎么样?阿里云香港、新加坡云主机如何购买? 香港VPS[主机]
- 舍利云:香港美国vps云服务器/BGP线路元旦全场9折,低至36元/月 美国VPS[主机]
- 阿里云香港服务器多少钱?阿里云香港服务器价格 香港VPS[主机]
- 茶猫云:香港云服务器,支持windows,2M带宽,34元/月 WINDOWS
- UCloud全球大促活动:香港2核4G2M仅485元/年(台湾437元/ 美国VPS[主机]
- 六六云:香港BGP云服务器/80M大带宽,月付45元起,5折优惠码可用 香港VPS[主机]
- m247服务器:香港/日本/新加坡/美国/欧洲等36个机房,1G~10G 日本VPS[主机]
- 咖啡主机:香港云服务器15.6元/月(季付);美西1G云服务器16.8元 香港VPS[主机]
- Pia云:美国三网CN2 GIA线路,15元/月起;香港云主机1核/2G 美国VPS[主机]
- VoLLCloud:亚太地区香港200M/VPS月付低至3$,年付全场5 香港VPS[主机]
- Fatal error: Allowed memory size of 全球[VPS测评]
- 适合美容院的正能量抖音文案,唯美阳光,正能量满满 全球[VPS测评]
- 菜单选中标记CSS3动画效果 全球[VPS测评]
- VPS到底有什么用? 全球[VPS测评]
- 华凯易佰同比扭亏跨境电商行业回暖H2旺季将至|中报追踪 全球[VPS测评]
- CombCloud,香港沙田CN2VPS测评,2核1G52元/月,安畅C 香港VPS[主机]
- 手帕云,便宜小带宽香港CN2 VPS,集群10G防御,双向CN2直连,仅 香港VPS[主机]
- 咖啡主机:享受7、8折促销 美国vps仅需15.4元/月 香港vps仅需 美国VPS[主机]
转载请注明原文地址: http://140.238.13.167:12355/read-202674.html











