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[主机]
- 什么是Bootstrap? 全球[VPS测评]
- 华凯易佰同比扭亏跨境电商行业回暖H2旺季将至|中报追踪 全球[VPS测评]
- 桔子数据怎么样?便宜香港安畅CN2 VPS1核1G10M 28/月 香港VPS[主机]
- 企鹅小屋:1核/512MB/10GB SSD空间/500GB流量/KVM 虚拟空间(主机)
- 港网科技怎么样?国内BGP云主机,2核2G5M带宽仅377.46元/年 全球[VPS测评]
- 菠萝云服务器怎么样?香港云主机BGP、CN2,2核1G2M带宽仅49元/ 香港VPS[主机]
- 者也vps年终特惠:全场云服务器7折终身优惠,赠1G内存,充1000送3 全球[VPS测评]
- 六六云:1核1GB/15GB空间/1T流量/100Mbps/KVM/香港 虚拟空间(主机)
- 2021硅云新年献礼活动:香港企业级云服务器2核4G5M仅2888元/5 香港VPS[主机]
- 易凡云:香港CN2 2核2G云服务器仅29.78元/月,357元/年 香港VPS[主机]
- 老六云:⾹港⼤宽带服务器、香港大带宽vps_新购⾸⽉85折优惠 香港VPS[主机]
- 魔方云:香港原生IP vps/大带宽,月付79元起;美国洛杉矶CN2 G 美国VPS[主机]
- UCloud香港云服务器;企业89元/年,个人134元/年,最高可三年 香港VPS[主机]
- CoNoov:美国/日本/新加坡/英国/荷兰/西班牙/挪威/丹麦vps, 日本VPS[主机]
- Pia云:美国洛杉矶vps,三网回程GIA,月付15元起;10M大带宽香 美国VPS[主机]
- DMIT:香港CN2 GIA VPS,1核/750M内存/10G硬盘/4 香港VPS[主机]
- 孤狼云:香港安畅、沙田CN2 VPS,1核/1G/40G硬盘,10元/月 香港VPS[主机]
- Vmshell:香港免费vps试用机24H,新增在线测速!年付再打9折, 香港VPS[主机]
- Centos7的firewall 防火墙如何设置端口转发? 全球[VPS测评]
- 香港云服务器对于建站有什么便捷的地方? 香港VPS[主机]
- 香港云服务器的优势有哪些方面 香港VPS[主机]
- 创意加载进度HTML动画特效,SVG+CSS3实现的动画死神来了load 全球[VPS测评]
- 创意IT服务公司主页网站模板 - Softets 全球[VPS测评]
- 快速云:云服务器和vps区别是什么云服务器和vps哪个比较安全2022- 全球[VPS测评]
- CubeCloud,靠谱的香港cn2vps,美国cn2终身九折,原生IP 美国VPS[主机]
- EdgeNAT,香港CN2+BGP vps 带宽5M 月付72元 香港VPS[主机]
- JGKVM(极光kvm),便宜香港VPS(5G防御秒解),极光互联vps 香港VPS[主机]
- wikihost,微基主机:1核/1G/15G/100Mbps/香港vp 香港VPS[主机]
- 众创逸云:国庆中秋节大促销优惠,不限流量香港CN2线路VPS 5.9元/ 香港VPS[主机]
转载请注明原文地址: http://140.238.13.167:12355/read-214440.html











