Просмотр полной версии : [PHP]301 redirect
Задаю вопрос еще раз, так как на него не дождался ответа в вопросах, и врятли дождусь.
Столкнулся с проблемой:
Отправляю сокетом на скачку главной страницы яндекса, и мне выдает ответ что там стоит 301 редирект.
Вообщем как по нему перейти или избежать его вообще?
P.S заметил, если не отправлять Host:, то все работает(НО имхо это не выход).
Заранее спасибо
-=Static=-
08.07.2008, 23:14
кинь исходник того что и как ты туда отправляешь.
$site = "http://yandex.ru/";
preg_match("/[.]{1}[a-zA-Z]{2,5}(\/[a-zA-Z0-9\-\_\.\,\:]+)/",$site,$path);
preg_match("/[:]{1}\/\/([a-zA-Z0-9\-\.]+)\//",$site,$host);
define("PATH",$path[1]);
define("HOST",$host[1]);
$fp = @fsockopen(HOST,80,$errno,$errstr,10) or exit();
$out = "GET /".PATH." HTTP/1.0\r\n";
$out .= "Host: ".HOST."\r\n";
$out .= "Referer: ".$site."\r\n";
$out .= "User-Agent: Opera/9.50 (Windows NT 6.0; U; ru)\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: close\r\n\r\n";
fwrite($fp,$out);
while(!feof($fp)){
$page .= fread($fp,512);
}
fclose($fp);
Вот кусочик^
-=Static=-
08.07.2008, 23:33
Вот все ОК:
<?
$site = "www.yandex.ru";
preg_match("/[.]{1}[a-zA-Z]{2,5}(\/[a-zA-Z0-9\-\_\.\,\:]+)/",$site,$path);
preg_match("/[:]{1}\/\/([a-zA-Z0-9\-\.]+)\//",$site,$host);
define("PATH","");
define("HOST",$site);
$fp = @fsockopen(HOST,80,$errno,$errstr,10) or exit();
$out = "GET /".PATH." HTTP/1.0\r\n";
$out .= "Host: ".HOST."\r\n";
$out .= "Referer: ".$site."\r\n";
$out .= "User-Agent: Opera/9.50 (Windows NT 6.0; U; ru)\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: close\r\n\r\n";
fwrite($fp,$out);
while(!feof($fp)){
$page .= fread($fp,512);
}
echo $page;
fclose($fp);
?>
Там редирект 500% стоит просто с yandex.ru на www.yandex.ru
чтоб все происходило на www.yandex.ru этож типа разные домены))
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot