метод перенаправления bit.ly - PullRequest
2 голосов
/ 28 мая 2011

Есть идеи, если bit.ly делает что-то кроме простого заголовка Location: для перенаправления пользователей?

Facebook может анализировать информацию о конечном пункте назначения, используя ссылку bit.ly, но не ссылки моего проекта http://guubo.com/aaaaab, которые используют простой заголовок Location:.

Я проверил заголовки bit.ly, они выглядят обычными.

Ответы [ 2 ]

4 голосов
/ 28 мая 2011

Я посмотрел на это дальше. Попробуйте следующее из командной строки

curl -D headers.txt http://bit.ly/4m1AUx

Затем вы можете посмотреть содержимое headers.txt, которое будет выглядеть как

HTTP/1.1 301 Moved
Server: nginx
Date: Sat, 28 May 2011 13:18:21 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Set-Cookie: _bit=4de0f61d-001f7-008b9-d8ac8fa8;domain=.bit.ly;expires=Thu Nov 24 08:18:21 2011;path=/; HttpOnly
Cache-control: private; max-age=90
Location: http://slashdot.org/
MIME-Version: 1.0
Content-Length: 112

Итак, нет, они делают нормальный 301 редирект. Вы можете выполнить ту же проверку в своем PHP-коде, используя PHP curl-bindings , чтобы получить заголовки для определения реального сайта, если хотите.

0 голосов
/ 16 января 2017

см. https://stackoverflow.com/a/41680608/7426396

Я реализовал, чтобы получить каждую строку простого текстового файла с одним сокращенным URL-адресом на строку, соответствующим URL-адресом перенаправления:

<?php
// input: textfile with one bitly shortened url per line
$plain_urls = file_get_contents('in.txt');
$bitly_urls = explode("\r\n", $plain_urls);

// output: where should we write
$w_out = fopen("out.csv", "a+") or die("Unable to open file!");

foreach($bitly_urls as $bitly_url) {
  $c = curl_init($bitly_url);
  curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36');
  curl_setopt($c, CURLOPT_FOLLOWLOCATION, 0);
  curl_setopt($c, CURLOPT_HEADER, 1);
  curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 20);
  // curl_setopt($c, CURLOPT_PROXY, 'localhost:9150');
  // curl_setopt($c, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
  $r = curl_exec($c);

  // get the redirect url:
  $redirect_url = curl_getinfo($c)['redirect_url'];

  // write output as csv
  $out = '"'.$bitly_url.'";"'.$redirect_url.'"'."\n";
  fwrite($w_out, $out);
}
fclose($w_out);

Веселитесь инаслаждаться!* PW 1007 *

...