Обнаружение перенаправления URL-адресов с заголовками HTTP и curl?

Я пытаюсь написать программу проверки перенаправления, чтобы проверить, является ли URL-адрес дружественным к поисковой системе. Он должен проверить, перенаправлен ли URL-адрес или нет, и если он перенаправлен, он должен сказать, подходит ли он для SEO (код состояния 301) или нет (302/304).

Вот кое-что похожее, что я нашел: http://www.webconfs.com/redirect-check.php

Он также должен иметь возможность выполнять несколько перенаправлений (например, от A к B к C) и скажите мне, что A перенаправляет на C.

Это то, что я получил до сих пор, но он работает не совсем правильно (пример: при вводе www.example.com он не находит перенаправление на www.example.com / page1)

0)
{
    $url = $_POST["url"];
    $curlurl = "http://".$url."/";
    $ch = curl_init();
    // Set URL to download
    curl_setopt($ch, CURLOPT_URL, $curlurl);

    // User agent
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
    // Include header in result? (0 = yes, 1 = no)
    curl_setopt($ch, CURLOPT_HEADER, 0);

    // Should cURL return or print out the data? (true = return, false = print)
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // Timeout in seconds
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);

    // Download the given URL, and return output
    $output = curl_exec($ch);

    $curlinfo = curl_getinfo($ch);

    if(($curlinfo["http_code"]=="301") || ($curlinfo["http_code"]=="302"))
    {
        $ch = curl_init();
        // Set URL to download
        curl_setopt($ch, CURLOPT_URL, $curlurl);

        // User agent
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
        // Include header in result? (0 = yes, 1 = no)
        curl_setopt($ch, CURLOPT_HEADER, 0);

        // Should cURL return or print out the data? (true = return, false = print)
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        // Timeout in seconds
        curl_setopt($ch, CURLOPT_TIMEOUT, 15);


        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        // Download the given URL, and return output
        $output = curl_exec($ch);

        $curlinfo = curl_getinfo($ch);
        echo $url." is redirected to ".$curlinfo["url"];
    }
    else
    {
        echo $url." is not getting redirected";
    }

    // Close the cURL resource, and free system resources
    curl_close($ch);
}
?>
http:/// e.g. www.google.com

6
задан deltitnu 16 December 2011 в 12:16
поделиться