首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测URL重定向路径php

检测URL重定向路径php
EN

Stack Overflow用户
提问于 2020-09-23 19:28:40
回答 2查看 70关注 0票数 0

我想获得完整的重定向路径的网址。

假设source.com在多次重定向后重定向到destination.com,如下所示:http://www.source.com/ -> http://www.b.com/ -> http://www.c.com/ -> http://www.destination.com/

如何获取所有重定向的URL?

使用下面的代码,我只得到了http://www.destination.com/如何检测完整的url重定向链?

代码语言:javascript
复制
<?php
$url='windows.com';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow the redirects
curl_setopt($ch, CURLOPT_HEADER, false); // no needs to pass the headers to the data stream
curl_setopt($ch, CURLOPT_NOBODY, true); // get the resource without a body
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // accept any server certificate
curl_exec($ch);

// get the last used URL
$lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

      curl_close($ch);

   echo $lastUrl;
?>

这段代码还有一个问题,它无法检测到youtube重定向的重定向url。测试网址:https://www.youtube.com/redirect?redir_token=QUFFLUhqbkVxUFZUME9NbWF4RThxdFpGV3pmTTJEdFVWQXxBQ3Jtc0tubGJqU016TzJ6WnlfeUItX0ZmOUItUE1jRlZoZXhxMzNpQllpM0NLSk4ycnBLMGNidTFsX3N6WkU2X3RsUTRZb1lXQVp5SEZjbnU3eDFuZS1VU3dhdzg2QW9ZMTl1azFCZFZHcHRLdFF3dTM1MlRWdw%3D%3D&event=video_description&v=KEa2XWRGf_4&q=https%3A%2F%2Fwww.facebook.com%2Fabhiandniyu

我的问题是如何为所有类型的重定向请求检测完整的url重定向链。

EN

回答 2

Stack Overflow用户

发布于 2020-09-23 21:58:20

你可能错过了:

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);

将它添加到您的CURL配置中,然后它就应该可以工作了。

票数 0
EN

Stack Overflow用户

发布于 2020-09-23 22:46:39

不遵循HTTP重定向:curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);

并输出HTTP头,同时测试:curl_setopt($ch, CURLOPT_HEADER, true);

然后,您可以从接收到的HTTP 302响应中获取Location标头。

当它有多个重定向时,它必须循环运行,直到接收到HTTP 200。在此上下文中,HTTP 200表示已到达最终目的地。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64026962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档