【问题标题】:PHP Detect if One of www & non-www Redirect to The OtherPHP检测www和非www之一是否重定向到另一个
【发布时间】:2017-04-16 19:26:32
【问题描述】:

我需要编写一个 PHP 脚本来检测 www 是否重定向到非 www 或非 www 重定向到网站的 www 版本。在此过程中,我还需要检测它是 301 还是 302 重定向。如果重定向不存在,结果应该是重定向代码(301 或 302)或 Null。

其范围是检测 www 和非 www 是否被视为两个不同的站点,或者一个重定向到另一个站点以及它是哪种重定向。

有人可以帮我写剧本吗?

谢谢:)

【问题讨论】:

  • 重定向状态码由服务器上报给客户端。它们不会报告给 PHP。换句话说:它可能是 PHP 进行重定向,但它不是你可以用 PHP 检测到的。
  • 我想通过 PHP 脚本访问该站点并从中检测,也许通过 CURL 并像这样检测。
  • 我明白了,是的,如果您使用 CURL 作为客户端到另一个站点,您应该能够检测到正在发生的任何重定向。

标签: php html redirect


【解决方案1】:

检测http状态码:

// Create a cURL handle
$ch = curl_init('http://www.example.com/');

// Execute
curl_exec($ch);

// Check HTTP status code
if (!curl_errno($ch)) {
  switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
    case 200:  # OK
      break;
    default:
      echo 'Unexpected HTTP code: ', $http_code, "\n";
  }
}

// Close handle
curl_close($ch);

这不是我编的,是直接从PHP手册中复制过来的:

http://php.net/manual/en/function.curl-getinfo.php

参见示例 #2。

【讨论】:

  • 您好,感谢您的指点。我可以达到这一点,但需要帮助来形成脚本并输出正确的结果。你能帮忙吗?
  • 你必须先自己尝试一些东西。我们不会为您编写代码,我们会在您遇到困难时为您提供帮助。展示你到目前为止所做的代码,并告诉我们为什么你不能让它做你想让它做的事情。当你这样做时,你的问题也可能会得到赞成而不是反对。每个编程的人都会遇到问题,这是理所当然的。你必须自己付出一些努力。只有自己解决问题,才能成为更好的程序员。
猜你喜欢
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 2012-06-03
  • 2018-06-06
  • 2015-12-31
相关资源
最近更新 更多