redirect для на разные fastdl сервера

Тема в разделе "Веб-технологии", создана пользователем Danyas, 29 авг 2016.

  1. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.721
    Симпатии:
    461
    Скрипт:
    PHP:
    <?php 
    header
    ("HTTP/1.1 301 Moved Permanently");
    header("Location: http://real_fastdl_ip/".$_GET['file']);
    exit();
    ?>
    Путь к скрипту: new_fastdl_ip/index.php
    sv_downloadurl: http://new_fastdl_ip/?file=


    Соль в том, что с браузера на при переходе на http://new_fastdl_ip/?file=maps/de_dust2.bsp.bz2 всё качается отлично, а сама игра отказывается качать этот файл.

    error логов у апача нету, данные с acess лога:

    danyas.pp.ua:80 CLIENTIP - - [29/Aug/2016:22:10:59 +0300] "GET /?file=/maps/de_dust2.bsp.bz2 HTTP/1.1" 301 278 "hl2://SERVERIP:SERVERPORT" "Half-Life 2"
    danyas.pp.ua:80 CLIENTIP - - [29/Aug/2016:22:10:59 +0300] "GET /?file=/maps/de_dust2.bsp HTTP/1.1" 301 273 "hl2://SERVERIP:SERVERPORT" "Half-Life 2"
    danyas.pp.ua:80 CLIENTIP - - [29/Aug/2016:22:10:59 +0300] "GET /?file=/maps/de_dust2.nav.bz2 HTTP/1.1" 301 277 "hl2://SERVERIP:SERVERPORT" "Half-Life 2"
    danyas.pp.ua:80 CLIENTIP - - [29/Aug/2016:22:10:59 +0300] "GET /?file=/maps/de_dust2.nav HTTP/1.1" 301 273 "hl2://SERVERIP:SERVERPORT" "Half-Life 2"
     
  2. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.222
    Симпатии:
    916
    Ты уверен, что движок поддерживает HTTP редиректы? Не помню такого функционала в нём.
     
  3. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.721
    Симпатии:
    461
    Судя по всему - не поддерживает :C
    Есть какие - то еще предложения?
    Мне знакомый такой пример скинул - Автоматическая загрузка файла при переходе по ссылке - PHP для начинающих - CyberForum.ru
    Хочу попробовать
     
  4. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.222
    Симпатии:
    916
    Не факт, что octet-stream ему тоже подойдёт, но так должно сработать. Попробуй и octet-stream, и x-bz2. Возможно, для bsp придётся использовать octet-stream.
     
  5. Akkotto

    Akkotto

    Сообщения:
    38
    Симпатии:
    3
    А не проще для переброса mod_rewrite использовать?
     
  6. ykpon

    ykpon Владыка Read Only

    Сообщения:
    399
    Симпатии:
    104
    Через файл я бы сделал так:
    Код:
    header("Content-Disposition: attachment; filename=\"{$_GET['file']}\"");
    header("Content-Type: application/octet-stream");
    header("Content-Length: " . filesize($_GET['file']));
    $f = fopen($_GET['file'], 'rb');
    while (!feof($f)) {
       echo fread($f, 1024 * 8);
    }
    fclose($f);
    
     
  7. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.721
    Симпатии:
    461
    PHP:
    <?php 
    $suka 
    $_GET['file'];
    $pieces explode("/"$suka);
    $file array_pop($pieces);

    header("Content-disposition: attachment; filename=.$file");
    header("Content-type: application/x-bz2");
    header("Content-Description: File Transfer");
    readfile("http://real_fastdl_ip".$suka);
    exit();
    ?>

    Через браузер качает, через игру - нет
    --- Добавлено позже ---
    @ykpon Сейчас попробую
     
  8. plexe

    plexe

    Сообщения:
    7
    Симпатии:
    0
    отдавать статику через чтение файлов на пхп - плохо кончится
    если апач - юзай XSendFile On в конфиге,
    Код:
    header('Content-Disposition: inline;filename=' . $fileName);
    header('Content-Type: application/x-bzip');
    header('X-SendFile: ' . $filePath);
    тебе для чего это нужно вообще?
    может с другой стороны к задаче можно подойти

    Оффтоп
     
  9. ykpon

    ykpon Владыка Read Only

    Сообщения:
    399
    Симпатии:
    104
    Не удивляйся только, но твой вариант точно так же будет выполняться PHP-интерпретатором.
     
    CrazyHackGUT и Tesloz нравится это.
  10. CrazyHackGUT

    CrazyHackGUT Меня здесь нет

    Сообщения:
    876
    Симпатии:
    545
    Тема устаревшая, но всё же.

    Не знаю, как в КСС это устроено и в КС:ГО, но в ТФ2 редиректы точно поддерживаются. Знакомый через .htaccess так сбивал нагрузку на свой веб-сервер, заставляя клиент игры качать файлы с других серверов.
    PHP:
    Redirect 301 /fastdl/maps/example.bsp.bz2 http://dl.site.com/maps/example.bsp.bz2
    Redirect 301 /fastdl/maps/mymap.bsp.bz2 http://dl.site2.com/maps/mymap.bsp.bz2
     
    Chaos_Engine нравится это.
  11. plexe

    plexe

    Сообщения:
    7
    Симпатии:
    0
    не совсем. php не будет отдавать файл, это будет делать веб-сервер
     
  12. ykpon

    ykpon Владыка Read Only

    Сообщения:
    399
    Симпатии:
    104
    Не уж то ты считаешь, что функция header() не обрабатывается пыхом, м?
     
    CrazyHackGUT нравится это.
  13. plexe

    plexe

    Сообщения:
    7
    Симпатии:
    0
    это шутка такая? конечно же будет. пхп отдаст заголовок, веб-сервер его подхватит и прочитает файл