Ретранслирование сайта с домена на домен. Помогите исправить скрипт.

JM
На сайте с 09.10.2010
Offline
52
566

Привет всем!

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

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

То зеркало, которое сделал я, имеет ряд недостатков. Вот код файла index.php

<?php

$add_url = '';

if (isset($_GET['url']) && $_GET['url'] != '');

{

$add_url = '/'.$_GET['url'];

unset($_GET['url']);

}

$source_url = 'http://sub.domain1.info';

$our_url = 'http://domain2.ru';

$url = $source_url.$add_url;

$params = $_GET;

$result = file_get_contents($url, false, stream_context_create(array(

'http' => array(

'method' => 'GET',

'header' => 'Content-type: application/x-www-form-urlencoded',

'content' => http_build_query($params)

)

)));

$page = str_replace($source_url, $our_url, $result);

echo $page;

?>

Содержимое .htaccess

AddDefaultCharset UTF-8

RewriteEngine on

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-l

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

Проблемы в следующем.

1. На загруженном сайте не работают AJAX-скрипты.

2. Очень долго грузится иногда, и в промежутках появляется белый фон.

3. Бывает часто, что не улавливаются GET параметры.

4. Не удаётся передать POST.

5. Бывает такое, что не передаются CSS.

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

Делать фреймы не предлагайте, т.к. это делает источник сайта открытым.

[Удален]
#1

Вообще это можно сделать силами вебсервера, например на nginx:


server {
listen 80;
server_name myblog.ru;

resolver 8.8.8.8;

location / {
proxy_pass http://www.babyblog.ru:80;
}

}

все обращения на myblog.ru будут направляться на babyblog.ru

ДП
На сайте с 23.11.2009
Offline
203
#2

Аналогичная возможность есть и у апача - mod_proxy изучайте.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий