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
- 阿里云→CDN 有国内和亚太 100GB 流量 年付 22 元;500G全球[VPS测评]
- $3.5 月 1G 内存 50G 硬盘 1T 流量 1Gbps KVM 全球[VPS测评]
- GetWebHosting→£5 年 1GB NVMe 空间 1TB 流虚拟空间(主机)
- 搬瓦工最新优惠码整理(长期更新) 高速优质便宜的美国 cn2vps 推荐美国VPS[主机]
- 动力云→201 元 月 1GB 内存 10GB SSD 空间 10TB 虚拟空间(主机)
- 便宜 酷番云→2G 内存 180G 硬盘 5M 带宽仅需 50 元 月 全球[VPS测评]
- MySql 多个关键字 like 查询结果按照匹配最多排序全球[VPS测评]
- Cubecloud - 魔方云春节 75 折优惠 香港新加坡等机房可选香港VPS[主机]
- 五月促销 RAKsmart→美国站群首月半价 年付免费送 3 个月 I3站群服务器[IP]
- [11.11]RAKsmart“双 11 来了 幸运大抽奖”最高奖 L5全球[VPS测评]
- 三优云→香港 CMI 日本 CN2 美国 CN2 直连 VPS 促销 终日本VPS[主机]
- ZJI 香港站群服务器→1400 元 L5630 24GB 480G S站群服务器[IP]
- vpsms→洛杉矶安畅 cn2 gia VPS 54 元 月 512m 全球[VPS测评]
- CenterServ → 179$ 月 1Gbps不限流量 香港 澳门等独立服务器[U]
- Gullo’s Hosting-10$ 年 256mb内存5g硬盘 25美国VPS[主机]
- 阿里云(中国区) 香港新加坡区轻量应用服务器香港VPS[主机]
- CrownCloud -512M内存 1000G HDD 6T流量 1G全球[VPS测评]
- 如何设置必应api 自动推送网站全球[VPS测评]
- 如何设置指定路径跳转指定域名?全球[VPS测评]
- 极光kvm怎么样,便宜大带宽香港cmi vps/美国gia vps低至1美国VPS[主机]
- centos7如何查看firewall防火墙状态:开启/关闭/重启防火墙全球[VPS测评]
- 阳帝云双十二活动:1核1G10M大宽带香港BGP云服务器,月付14元香港VPS[主机]
- 港网科技怎么样?国内BGP云主机,2核2G5M带宽仅377.46元/年全球[VPS测评]
- UCloud香港云主机怎么样?UCloud香港云主机1核1G1M评测香港VPS[主机]
- 拼多多入局跨境电商平台,首站美国;奈雪的茶在上海建第二总部;pidan“美国VPS[主机]
- 创意加载进度HTML动画特效,SVG+CSS3实现的动画死神来了load全球[VPS测评]
- 众创逸云:国庆中秋节大促销优惠,不限流量香港CN2线路VPS 5.9元/香港VPS[主机]
- 青云互联:香港vps全场终身8折优惠,CN2线路,提供大带宽vps,月付香港VPS[主机]
- kvmcloud怎么样?香港BGP云服务器 月付12.9元香港VPS[主机]
- Fatal error: Allowed memory size of 全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-220444.html











