За последние 24 часа нас посетили 16966 программистов и 1652 робота. Сейчас ищут 843 программиста ...

Как сделать полноценное "зеркало" или "ретранслятор" сайта?

Тема в разделе "Прочие вопросы по PHP", создана пользователем aa.shadrin, 19 июн 2015.

  1. aa.shadrin

    aa.shadrin Новичок

    С нами с:
    29 окт 2014
    Сообщения:
    13
    Симпатии:
    0
    Привет профессионалам! )
    Под словом "зеркало" я имею в виду следующее. Вот, у нас есть сайт на домене sub.domain1.ru, и есть еще один домен domain2.ru. Нужно сделать так, чтобы при заходе на domain2.ru отображалось содержимое сайта sub.domain1.ru, но при этом, отображались те же самые URL адреса, что и на sub.domain1.ru, кроме того, что является самым главным, на domain2.ru мы не должны размещать исходных PHP файлов с первого сайта.

    То зеркало, которое сделал я, имеет ряд недостатков. Вот код файла index.php
    Код (PHP):
    1. <?php
    2.  
    3. $add_url = '';
    4. if (isset($_GET['url']) && $_GET['url'] != ''); 
    5. {
    6.     $add_url = '/'.$_GET['url'];
    7.     unset($_GET['url']);    
    8. }
    9.  
    10. $source_url = 'http://sub.domain1.info';
    11. $our_url    = 'http://domain2.ru';
    12.  
    13. $url = $source_url.$add_url;
    14.  
    15. $params = $_GET;
    16. $result = file_get_contents($url, false, stream_context_create(array(
    17.         'http' => array(
    18.         'method'  => 'GET',
    19.         'header'  => 'Content-type: application/x-www-form-urlencoded',
    20.         'content' => http_build_query($params)
    21.     )
    22. )));
    23.  
    24. $page = str_replace($source_url, $our_url, $result);
    25.  
    26. echo $page;
    27.  
    28. ?>
    Содержимое .htaccess
    Код (PHP):
    1. AddDefaultCharset UTF-8
    2.  
    3. RewriteEngine on
    4. RewriteEngine on
    5. RewriteCond %{REQUEST_FILENAME} !-f
    6. RewriteCond %{REQUEST_FILENAME} !-l
    7. RewriteCond %{REQUEST_FILENAME} !-d
    8. RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 
    Проблемы в следующем.
    1. На загруженном сайте не работают AJAX-скрипты.
    2. Очень долго грузится иногда, и в промежутках появляется белый фон.
    3. Бывает часто, что не улавливаются GET параметры.
    4. Не удаётся передать POST.
    5. Бывает такое, что не передаются CSS.

    Господа профессионалы, в чём же косяк в моем коде? Может есть способ сделать лучше?
    Делать фреймы не предлагайте, т.к. это делает источник сайта открытым.

    _
    Код нужно оформлять специальными тегами, автор.
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Как сделать полноценное "зеркало" или "ретранслятор" сай

    Быть может косяк в том, что ты пытаешься присосаться к чужому проекту с нифига? Будь оба проекта твоими, проблем с зеркалированием бы не было.
     
  3. aa.shadrin

    aa.shadrin Новичок

    С нами с:
    29 окт 2014
    Сообщения:
    13
    Симпатии:
    0
    Re: Как сделать полноценное "зеркало" или "ретранслятор" сай

    Как раз таки, сайт-источник - мой проект. Я хочу таким образом себя подстраховывать на период сотрудничества, до полной оплаты моих услуг ставить зеркало на хостинг клиента. И у меня будет большая просьба, не обсуждать правильность или неправильность данных действий. Если можете что-то подсказать по PHP, буду благодарен. Если сказать нечего, прошу не давать мне "жизненных советов".
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Как сделать полноценное "зеркало" или "ретранслятор" сай

    Имею на это полное право, так как, если имело бы место именно то, о чем я говорю, то было бы предупреждение и выпиливание топика. И у меня будет большая просьба, ознакомиться с текстом по ссылке в моей подписи.

    AJAX-скрипты и прочее могут не работать по причине того, что ты сам же мог сделать защиту от CSRF, завязанную на куках, например. Вторая проблема - если ты подгружаешь скрипты извне, то все твои правки URLов в загруженном контенте не будут иметь силу. Подгружай скриптом свой JS и встраивай в тело страницы, заменяя им линки в хеде.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Как сделать полноценное "зеркало" или "ретранслятор" сай

    просто настрой вебсервер на то, что пхп работает не локально, а у тебя
     
  6. aa.shadrin

    aa.shadrin Новичок

    С нами с:
    29 окт 2014
    Сообщения:
    13
    Симпатии:
    0
    Re: Как сделать полноценное "зеркало" или "ретранслятор" сай

    Интересный подход. Но только, я даже представить себе не могу, КАК ЭТО СДЕЛАТЬ??? На виртуальном хостинге такое возможно?

    Добавлено спустя 3 минуты 54 секунды:
    Re: Как сделать полноценное "зеркало" или "ретранслятор" сайта?
    Спасибо за рекомендацию, и за совет по оформлению тем. А по поводу моего возмущения, просто это выглядит так, как будто ты приходишь в стрелковый клуб, задаешь вопрос по поводу того, как сделать пристрелку ружья, а тебе сразу говорят "а может не надо тебе ружье, застрелишь кого-нибудь" = )))) в данном случае, у меня возникла мысль, что меня подозревают в негативных намерениях.

    По поводу самого совета. Если не будешь против, я бы хотел чуть-чуть побольше подробностей..
    т.е. предлагается загружать JS, который будет в свою очередь с помощью jQuery подгружать нужный документ?
    я в общем не понял.. поясни пожалуйста ))
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Как сделать полноценное "зеркало" или "ретранслятор" сай

    А так оно и было. 9 из 10, кто что-то парсят или просят написать им граббер - ворье и паразиты, вот и все. Так что не обижайся на первую реакцию.
    Гляди, у тебя есть скрипты, кроме JQuery, которые включаются в страницу через <script src='url'>, а не прямо в тело документа?
     
  8. aa.shadrin

    aa.shadrin Новичок

    С нами с:
    29 окт 2014
    Сообщения:
    13
    Симпатии:
    0
    Re: Как сделать полноценное "зеркало" или "ретранслятор" сай

    т.е. имеется в виду, что в теле документа не должно быть скриптов и они все должны быть включены в отдельные файлы?
    аа кстати я понял. если аякс запрос, то он ведь нацелен на опред. php файл, которого локально нет. Значит нужно указывать пути в аяксах непосредственно к серверу источника?
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Как сделать полноценное "зеркало" или "ретранслятор" сай

    Да. Иначе никак :)