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
- Kuai Che Dao→$18.3 季 512MB 内存 10GB S虚拟空间(主机)
- 超便宜 9.68 元 月 256M 内存 4G SSD 300G@50M全球[VPS测评]
- Ftpit→$15 年 OpenVZ-512MB 10G SSD 1TB全球[VPS测评]
- 劳动节 极光 KVM→五一劳动节专场 日本 美西 CN2 移动 CMI 日本VPS[主机]
- Excel 快速计算排名的两种方式→相同成绩占用名次及相同成绩不占用名次全球[VPS测评]
- 优惠 Hosteons→免费 windows 系统 不限流量 年付免费换WINDOWS
- zji→香港葵湾 cn2+bgp 网络 549 元 E5-2650L 1香港VPS[主机]
- js 获取当前时间戳全球[VPS测评]
- ByteDynasty→20 元 月 512MB 内存 8GB 空间 2虚拟空间(主机)
- 搬瓦工 IP 地址 ping 不通的正确检查方式全球[VPS测评]
- Spartanhost 斯巴达西雅图 E3-1270 v2 独立服务器测独立服务器[U]
- 如何合理设计WordPress博客菜单全球[VPS测评]
- Modern Solutions → 5$ 月 1C1G25G 不限流量美国VPS[主机]
- OLVPS 512 内存 10G SSD 512G流量 1Gbps 俄罗全球[VPS测评]
- 2019圣诞: CloudCone 512 内存 30G SSD 3T流全球[VPS测评]
- PacificRack → 1C 1G RAM 13G SSD 2T →全球[VPS测评]
- 147SEO采集器 CSS选择器写法案例全球[VPS测评]
- tudcloud,香港沙田大带宽vps特惠7折,CN2+BGP直连,10香港VPS[主机]
- 亚马逊卖家与广告流量之间的博弈才刚刚开始?品牌卖家如何冲破广告之困...全球[VPS测评]
- 企鹅小屋:深港IPLC节点,0.25元/G流量,不用不花钱全球[VPS测评]
- 吸血鬼崛起服务器怎么快速搭建?全球[VPS测评]
- 景林网络:香港CN2vps,1核1G3M月付35元;美国高防vps,48美国VPS[主机]
- 桔子数据:1核1GB香港CN2 GIA vps促销28元/月,最高30M香港VPS[主机]
- 日主机,便宜美国CN2高防VPS¥19/月起,1Gbps带宽,香港多IP站群服务器[IP]
- Fatal error: Allowed memory size of 全球[VPS测评]
- 乐趣云怎么样?香港美国云服务器首月8.8元,新增IP5元/个美国VPS[主机]
- EdgeNat双十二优惠:韩国/香港/美国全场VPS年付,2核2G2M仅韩国VPS[主机]
- 桔子数据:1核1GB香港CN2 GIA vps促销28元/月,最高30M香港VPS[主机]
- HostHatch:香港/澳大利亚vps,1核/2GB/10GB NVM虚拟空间(主机)
- 95IDC :香港vps优惠活动,1核2G月付折后25元;香港物理机低至香港VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-205582.html











