[PHP]301 redirect

Discussion in 'PHP' started by Chaak, 8 Jul 2008.

  1. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Задаю вопрос еще раз, так как на него не дождался ответа в вопросах, и врятли дождусь.
    Столкнулся с проблемой:
    Отправляю сокетом на скачку главной страницы яндекса, и мне выдает ответ что там стоит 301 редирект.

    Вообщем как по нему перейти или избежать его вообще?

    P.S заметил, если не отправлять Host:, то все работает(НО имхо это не выход).

    Заранее спасибо
     
  2. -=Static=-

    -=Static=- Banned

    Joined:
    12 Nov 2006
    Messages:
    201
    Likes Received:
    40
    Reputations:
    0
    кинь исходник того что и как ты туда отправляешь.
     
  3. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    $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);
    Вот кусочик^
     
  4. -=Static=-

    -=Static=- Banned

    Joined:
    12 Nov 2006
    Messages:
    201
    Likes Received:
    40
    Reputations:
    0
    Вот все ОК:

    PHP:
    <?
    $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 этож типа разные домены))