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 $4 月 512M 内存 20G SSD 10TB 流量全球[VPS测评]
- wget 下载 https 时报错 ERROR: The certifi全球[VPS测评]
- mysql 内置 md5 算法加密的数据与 php 程序 md5 算法加全球[VPS测评]
- 促销 CloudCone→高 IO 机器 1 核 512M 内存 10G全球[VPS测评]
- 上新极光 KVM→美国洛杉矶 PZ 中美优化线路 KVM 123.45 美国VPS[主机]
- notepad++设置中文 notepad++如何设置简体中文界面全球[VPS测评]
- ExCloud→深港 IPLC 沪日 IPLC 等 VPS 256MB 全球[VPS测评]
- GB Host→£2.79 月 1GB 内存 10GB 空间 不限流量 虚拟空间(主机)
- javascript 在新窗口中打开连接全球[VPS测评]
- 六六云香港三网 CN2 GIA VPS 速度及综合性能测评,七折优惠,月香港VPS[主机]
- Rainbow Cloud→$30 月 E3-12XX 8G 内存 1T日本VPS[主机]
- vultr→上韩国云服务器 SK 机房 大陆直连不绕道韩国VPS[主机]
- 腾讯云服务器,国内 2 核 4G 内存 768 元 3 年,香港 1 核香港VPS[主机]
- 基于Vue.js的单栏wordpress博客模板全球[VPS测评]
- 忘记WordPress后台密码要如何找回或修改密码全球[VPS测评]
- Ucloud云服务器官方补贴 个人新用户北上广低至¥77/年;香港低至¥香港VPS[主机]
- 百度统计是否会影响博客在百度的优化排名?全球[VPS测评]
- 升级为单向流量! RFChost → 洛杉矶Premium → CN2全球[VPS测评]
- BBR对比BBR2BBRPLUSBBR2CAKE锐速哪个效果好全球[VPS测评]
- 关键路径、资金情况、政策关键数据中心的可持续发展路径在哪里?全球[VPS测评]
- 印象云,香港安畅CN2VPS终身8折1核1G22元/月,美国CN2高防V美国VPS[主机]
- 数据中心助力光纤光缆行业发展全球[VPS测评]
- SEO和网页加载速度有关系吗?如何提升?全球[VPS测评]
- UCloud海外节点vps活动:香港、台湾等全球14个机房1折起,最低仅香港VPS[主机]
- 品光网络怎么样?香港美国服务器/云/高防,开年采购3.5折起美国VPS[主机]
- 40火伞高压电爬坡更让企业用电于民全球[VPS测评]
- 众创逸云:1核2G云服务器,不限流量vps/5Mbps/KVM/香港CN香港VPS[主机]
- Rustrot-深绿色UI电商网站模板HTML5框架全球[VPS测评]
- 金斗云双12活动:全场8折起,美国圣何塞CN2 GIA高防VPS20元/美国VPS[主机]
- 印象云,香港安畅CN2VPS终身8折1核1G22元/月,美国CN2高防V美国VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-217432.html











