Tôi đang cố gắng mã hóa trình kiểm tra chuyển hướng, để kiểm tra xem URL có thân thiện với công cụ tìm kiếm hay không. Nó phải kiểm tra xem một URL được chuyển hướng hay không, và nếu nó được chuyển hướng nó phải cho biết nếu nó thân thiện với SEO (301 mã trạng thái) hay không (302/304).Tìm chuyển hướng URL với tiêu đề HTTP và curl?
Dưới đây là một cái gì đó tương tự tôi đã tìm thấy: http://www.webconfs.com/redirect-check.php
Nó cũng sẽ có thể làm theo nhiều chuyển hướng (ví dụ như từ A đến B đến C) và cho tôi biết rằng A chuyển hướng đến C.
Đây là những gì tôi có cho đến nay, nhưng nó không hoạt động hoàn toàn đúng (ví dụ: khi nhập vào www.example.com nó không tìm thấy chuyển hướng đến www.example.com/page1)
<?php
// You can edit the messages of the respective code over here
$httpcode = array();
$httpcode["200"] = "Ok";
$httpcode["201"] = "Created";
$httpcode["302"] = "Found";
$httpcode["301"] = "Moved Permanently";
$httpcode["304"] = "Not Modified";
$httpcode["400"] = "Bad Request";
if(count($_POST)>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);
}
?>
<form action="" method="post">
http://<input type="text" name="url" size="30" />/ <b>e.g. www.google.com</b><br/>
<input type="submit" value="Submit" />
</form>
Thú vị rằng một 'curl_setopt() 'dòng đó gây ra vấn đề là một trong đó không có một nhận xét. –
Vui lòng kiểm tra câu trả lời thay thế tại đây, http://stackoverflow.com/questions/4062819/curl-get-redirect-url-to-a-variable/7616942#comment15921700_7616942 –