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
- 恒创科技:海外全球大促,香港美国服务器,全场低至3折限量首购 美国VPS[主机]
- SEO和网页加载速度有关系吗?如何提升? 全球[VPS测评]
- 网站迁移服务器是如何运作的?新手站长看完这篇文章,很容易就能看完。 全球[VPS测评]
- 详细介绍vps云服务器及其作用 全球[VPS测评]
- 为什么阿里云、腾讯云卖服务器可以挣到钱? 全球[VPS测评]
- 跨境贸易和跨境电商的三大区别简单分析 全球[VPS测评]
- 全球云lovps,香港CN2线路vps 新品七折月付49元 香港VPS[主机]
- 企鹅小屋怎么样?深港IPLC专线销售 500M大带宽/2核1G内存/55 全球[VPS测评]
- 磐逸云怎么样?1核1G香港安畅CN2 VPS带宽5M年付128元 香港VPS[主机]
- 野草云服务器怎么样?香港CN2+BGP带宽30M月付19元 香港VPS[主机]
- earidc怎么样?香港三网cn2vps带宽1M月付29元 香港VPS[主机]
- dogyun:2020国庆促销,7.1折优惠,多线路vps-香港CN2、 日本VPS[主机]
- Aoyohost:1核1GB/20GB/600GB流量/60Mbps端口 香港VPS[主机]
- edgeNAT:全场6折优惠,韩国CN2、美国CN2、香港CN2月付36 韩国VPS[主机]
- edgenat,低价年付促销活动,香港vps 4核8G仅300元/年,美 美国VPS[主机]
- 创新互联:免备案美国香港云主机4核2G仅558元/月,5580元/年 美国VPS[主机]
- 好云:国内云服务器2核2G5M优惠,仅350元/年;香港/海外云服务器, 香港VPS[主机]
- HostKvm:1核/4G/30G硬盘/750G/20Mbps/香港kv 香港VPS[主机]
- RAKsmart促销活动:韩国服务器低价抢购,美国G口服务器低至$99, 韩国VPS[主机]
- 遨游主机:8折优惠,美国cn2 gia vps,54元/月,2G内存/1 美国VPS[主机]
- 千古互动:香港vps,1核/1G/20M,月付35元起;挂机宝5元/月起 香港VPS[主机]
- pigyun:韩国CN2云服务器仅14元;香港CN2建站vps特惠+美国 韩国VPS[主机]
- CentOS 7.x 系统安装和配置redis-7.0.4集群 全球[VPS测评]
- 74块钱一年的云服务器可以用来做什么? 全球[VPS测评]
- 云计算拯救互联网巨头:谁抢跑,谁追赶? 全球[VPS测评]
- 私有云架设之优选拓普龙S465-24高密度存储服务器机箱评测解析 全球[VPS测评]
- 企鹅小屋:深港IPLC节点,0.25元/G流量,不用不花钱 全球[VPS测评]
- 宏海数据9.9云服务器:香港VPS CN2线路1核1G 9.9/首月 香港VPS[主机]
- VPSPlayer,超便宜香港cn2线路小带宽VPS,2核4G内存仅30 香港VPS[主机]
- tmhhost:8折优惠,美国cn2 gia高防vps,香港NTT vp 美国VPS[主机]
转载请注明原文地址: http://140.238.13.167:12355/read-208516.html











