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
- 免费域名申请及使用 后缀 tk ml cf ga gq全球[VPS测评]
- DMIT 两周年大促→美国 cn2 vps 消费返余额+送实物 三折起!美国VPS[主机]
- HostSolutions→罗马尼亚大硬盘 KVM 抗投诉 1TB 月付全球[VPS测评]
- oplink→美国休斯顿大流量 VPS $5 KVM 1G 内存 40gWINDOWS
- 双十一 微基主机预热活动→韩国机房双 E5-2630L 32G 韩国VPS[主机]
- 教程 VPS 快速搭建速度测试服务全球[VPS测评]
- Briefly unavailable for scheduled ma全球[VPS测评]
- webuploader 如何判断文件是否上传成功?全球[VPS测评]
- hostsolutions→€76 年 罗马尼亚大硬盘 VPS 无视版权全球[VPS测评]
- 360 安全防护中心无法开启的解决方案全球[VPS测评]
- PacificRack→$7.25 年 KVM-512MB 10GB 5全球[VPS测评]
- 基于 Docker 搭建 Nginx 服务器 在 Docker 中部署 全球[VPS测评]
- DMIT→$140 年 1GB 内存 10GB SSD 空间 1TB 流虚拟空间(主机)
- 促销 极光 KVM→4 月新增日本东京 CN2 产品 美国洛杉矶双向 C日本VPS[主机]
- WordPress 5.2 Beta1发布测试,新增古腾堡编辑器区块管理全球[VPS测评]
- 什么是蜘蛛黑洞及如何避免全球[VPS测评]
- 创意加载进度HTML动画特效,SVG+CSS3实现的动画死神来了load全球[VPS测评]
- 什么是IconFont ?iconfont 的使用和解析全球[VPS测评]
- 快速云:怎么连接vps?VPS的用途有哪些?全球[VPS测评]
- 什么是Bootstrap?全球[VPS测评]
- 云计算的三种服务模式,SaaS和PaaS的区别在哪里?全球[VPS测评]
- HostHatch:1核/2GB/20GB空间/KVM/香港/洛杉矶/纽虚拟空间(主机)
- Linux系统下安装Java JDK全球[VPS测评]
- 阳帝云双十二活动:1核1G10M大宽带香港BGP云服务器,月付14元香港VPS[主机]
- HostKVM香港云地VPS,2核4G内存折后$8.4/月,30M大带宽香港VPS[主机]
- 详细介绍vps云服务器及其作用全球[VPS测评]
- 华凯易佰同比扭亏跨境电商行业回暖H2旺季将至|中报追踪全球[VPS测评]
- 修罗云:1核/512MB/6GB空间/1TB流量/NAT/KVM/香港H虚拟空间(主机)
- ERP库存管理系统HTML5模板 - DreamsPOS全球[VPS测评]
- 跨境电商周报丨拼多多布局跨境电商平台;Shopify将推出新平台支持网红全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-208516.html











