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
- 补货通知 搬瓦工 CN2 GIA 三网直连线路$49.99 年付机器补货全球[VPS测评]
- RamNode - OpenStack 正式上线全球[VPS测评]
- 老板抠-标准互联→750 元 月 64 个 IPv4 1TB SSD 硬美国VPS[主机]
- 搬瓦工黑五补货 CN2 GIA 线路 512M 套餐 年付 44.49 全球[VPS测评]
- Windows Server 2012 在桌面上显示”我的电脑”图标的方WINDOWS
- 疯狂猜成语 图猜成语手指着梅花鹿想象成马是什么成语?全球[VPS测评]
- DedeCMS 新增及调用自定义函数全球[VPS测评]
- PHPExcel 合并单元格并写入内容全球[VPS测评]
- 绝版补货 搬瓦工双向 CN2 GIA 线路 37.79 美元每年补货了全球[VPS测评]
- 便宜 极光 KVM→年付 79.8 元 1 核 256M 内存 4G S全球[VPS测评]
- 做站推荐 98 元 年 2 核 CPU 512M 内存 10G SSD 全球[VPS测评]
- 搬瓦工 VPS 交易注意事项全球[VPS测评]
- Laravel faker 生成中文测试数据全球[VPS测评]
- js 限制 input 只能输入数字(包括小数)全球[VPS测评]
- ¥34 月 2G 内存 30G SSD 2Mbps 不限量 Xen 香港香港VPS[主机]
- 便宜 VPS $8.75 每年 256M 内存 500G 月流量 强势补全球[VPS测评]
- robots.txt与nofollow之间的区别全球[VPS测评]
- 日本VPS服务器商家收集汇总 方便购买日本VPS服务器日本VPS[主机]
- 在博客中如何合理展示AdSense 广告全球[VPS测评]
- AlphaVPS 黑五 1GB内存 2核CPU 1T流量 免费赠送DA面全球[VPS测评]
- WebHorizon 波兰机房便宜vps,基于kvm,0.5G内存,£1全球[VPS测评]
- 在博客中如何合理展示AdSense 广告全球[VPS测评]
- ZJI 双十一充1000元送100元,香港自营防御机型五折优惠。香港VPS[主机]
- 如何设置指定路径跳转指定域名?全球[VPS测评]
- Linux chown -R 指令介绍与使用全球[VPS测评]
- 跨境贸易和跨境电商的三大区别简单分析全球[VPS测评]
- 跨境电商拔节生长关键期,宁波政协委员月谈会精准助力!全球[VPS测评]
- SEO和网页加载速度有关系吗?如何提升?全球[VPS测评]
- CMIVPS,香港vps终身八折$7.76/月起,1核1G内存,香港沙田香港VPS[主机]
- 阿里云香港服务器速度怎么样?阿里云香港vps稳定不稳定?香港VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-202674.html











