Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Зеркало сайта
 
 автор: Jura   (03.10.2006 в 16:50)   письмо автору
 
 

Коллеги, добрый день, подскажите пожалуйста как создать зеркало сайта с незначительными изменениями?


Вот код моего зеркала

<?
ob_start
();
//------------------------------------------ ind
include("http://www.zerkalo_host.ru/index.php");
//------------------------------------------ ind
$postdata ob_get_clean();

$trans = array ('Company'=>'Company Филиал №2' ); // замена    
$postdata_n=strtr($postdata$trans);
echo 
$postdata_n;

?>


Вопрос остается за файлами, которых на зеркальном хосте не предвидется, как сделать? чтобы они брались с основного?
Файлами являются как картинки, так и zip, rar, 7z, doc, xls и другие файлы.

Предполагаю, что тут надо использовать mod_rewrite. Хелп, подскажите как??? это сделать??

   
 
 автор: Jura   (03.10.2006 в 17:31)   письмо автору
 
   для: Jura   (03.10.2006 в 16:50)
 

Люди, вы же люди, хелп...! ссылки на файлы относительные, поэтому ссылаться будут на сайт зеркала. а как сделать так? чтобы при запросе в корневую директорию все обрабатывал один файл??? Где-то встречал такое, но не помню где?

Может немного непонятно выразился, но поясню вопрос на примерах:

пусть исходный файл располагается здесь
http://primarthost.ru/testzip.zip
На зеркальном сайте эта ссылка будет находиться по следующему пути.
http://www.zerkalo_host.ru/testzip.zip
Этого файла не существует, в итоге возникнет 404 ошибка. Как сделать скрипт-проверку и пересылку на него данных, который смотрит, если выскакивает ошибка, то перенаправляет на скрипт шлюза с определенными параметрами.


Помогите плиз! Очень надо. И как на зло очень срочно.

   
 
 автор: komex   (03.10.2006 в 17:35)   письмо автору
 
   для: Jura   (03.10.2006 в 17:31)
 

Файл будет копироваться на зеркало? Или должна быть просто проверка на его наличие на сайте, и если он есть срабатывал редирект?

   
 
 автор: Jura   (03.10.2006 в 17:40)   письмо автору
 
   для: komex   (03.10.2006 в 17:35)
 

файл копироваться на зеркало не будет, будет осуществляться редирект.

   
 
 автор: komex   (03.10.2006 в 18:16)   письмо автору
 
   для: Jura   (03.10.2006 в 17:40)
 

Тогда можно сделать так:
Сделать файл с именами файлов на зеркале.
В цикле, с помощью fsockopen проверять размер файла.
Если размер = 0 или вообще не удалось его найти, то ссылку не выводить, а из файла удалить строчку с запрашиваемым файлом.
Если он имеет размер > 0, то вывести ссылку на сайт (не зеркало). Минус заключается в том, что это требует время! Не очень хороший вариант.
Это если надо вывести все доступные ссылки. Если надо по запросу, то почти тоже самое.
С помощью fsockopen проверять размер запрашиваемого файла.
Если размер = 0 или вообще не удалось его найти, то вывести сообщение об ошибке.
Если размер > 0, с помощью header'а или тэгов meta перекинуть на файл.

   
 
 автор: Jura   (03.10.2006 в 18:26)   письмо автору
 
   для: komex   (03.10.2006 в 18:16)
 

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

Также надо учесть что на зеркальном хосте есть папки, и скрипт множить на все папки особо нету охоты. как это сделать?

Люди подсказывают использоывать mod_rewrite.

хелп.

   
 
 автор: komex   (03.10.2006 в 18:37)   письмо автору
 
   для: Jura   (03.10.2006 в 18:26)
 

Что-то я не совсем понял.
Также надо учесть что на зеркальном хосте есть папки, и скрипт множить на все папки особо нету охоты. А зачем множить во все папки? Надо сделать один скрипт, ему надо передавать в качестве GET(например) пераметра имя файла. Этот скрипт проверяет наличие запрашиваемого файла на сервере (не зеркала). Если есть, то редирект, нету - сообщение юзеру и отправка сообщения на почту админа (что бы узнал о "левой" ссылке).

   
 
 автор: Jura   (03.10.2006 в 18:44)   письмо автору
 
   для: komex   (03.10.2006 в 18:37)
 

Логично. Как это написать? я в мод_реврайте увы не силен.

   
 
 автор: komex   (03.10.2006 в 18:49)   письмо автору
 
   для: Jura   (03.10.2006 в 18:44)
 

Вы не хотите показывать юзеру путь к файлу? Тогда надо Rewrite. А если можно показать путь, то не надо мучиться а просто перекинуть пользователя на сайт (не зеркало)!

   
 
 автор: Jura   (03.10.2006 в 20:37)   письмо автору
 
   для: komex   (03.10.2006 в 18:49)
 

пользователь путь видеть не должен.

   
 
 автор: valenok   (03.10.2006 в 21:08)   письмо автору
 
   для: Jura   (03.10.2006 в 20:37)
 

Ну как не видеть?
Сделай так чтоб пользователь не видел путь к картинке
Можно предпринять чтото такое:
<img src='http://this_mirror.ru/picture.php'>
А picture.php будет отниамть нужную картинку

Значит придётся переписывать все пути
А что писать в picture.php думать тебе.

   
 
 автор: Jura   (03.10.2006 в 23:31)   письмо автору
 
   для: valenok   (03.10.2006 в 21:08)
 

для этого будет скрипт-шлюз.
Мне всего-лишь нужен код для .htaccess, который во всех каталогах при обращении неиндексным файлам редиректил на скрипт, скажем gateway.php с параметром file, в значении которого передается путь от корневого хостинга запрашиваему файлу.

Пример:
http://zerkalo.ru/gateway.php?file=/images/crt.gif
или http://zerkalo.ru/gateway.php?file=/images//banner/blog/crt.gif


причем будут это картинки или другие файлы не имеет значения.

Думаю получится. Помогите плиз с htaccess. На данную минуту это осталось единственным камнем приткновения.

   
 
 автор: komex   (04.10.2006 в 11:06)   письмо автору
 
   для: Jura   (03.10.2006 в 23:31)
 

Тогда надо использовать Rewrite.
Только зачем тебе скрывать путь, если нет разницы качать файл, указав его настоящий путь или качать, указав путь к скрипту-редиректу?

   
 
 автор: Jura   (05.10.2006 в 18:42)   письмо автору
 
   для: komex   (04.10.2006 в 11:06)
 

а синтаксис есть какой-нить для применения этого Rewrite ? хотя бы парочку примеров.

Кстати, подскажите пожалуйста как ловить значения при помощи preg_match

preg_match("|<a.*? href=(.*?).*?>|s", $postdata , $matches);

Данный код мне несколько не подходит по одному пункту, надо получать данные без кавычек.

причем содержимое свойства href может быть как с кавычками как двойными, так и одинарными, так и без них.

Помогите плиз модифицировать? чтобы можно было выловить пути ссылок.

Очень надо.

   
 
 автор: Jura   (05.10.2006 в 18:45)   письмо автору
 
   для: Jura   (05.10.2006 в 18:42)
 

Если не очень правильный код использую, но надо получать то, что выделено жирным


<a href="надо получить ссылку">текст ссылки</a>
<img src="надо путь к картинке">


Решил все-таки получать ссылки на файлы не мод-реврайтом, а обычным парсингом.

ХЕЛП.

   
 
 автор: Jura   (05.10.2006 в 23:23)   письмо автору
 
   для: Jura   (05.10.2006 в 18:45)
 

Все, всем спасибо кто откликнулся... С муками, но истина найдена.

   
 
 автор: Jo!   (08.12.2006 в 16:46)   письмо автору
 
   для: Jura   (05.10.2006 в 18:45)
 

Парсите код на предмет путей?

А как быть, если пути в JS формируются? Вот так, например:


document.write("\<img name=\"mi" + i + "\" src=\"" + butnameImg + " border=\"0\" width=\"160\" height=\"22\" \>\</a\>\</td\>");


Да и сам butnameimg формируется там по коду выше...

Не выцепить ведь полный путь!..
Кто как поступил бы в этом случае?

Собственно задача:
сайт1 берет сформированные странички с сайта2, подставляет СВОИ ссылки, тем самым скрывая ВСЕ ЛИНКИ И АДРЕСА САЙТА2. Все работает, но вот с путями беда - картинки, JS-файлы, пхп итд итд, РАСПОЛОЖЕННЫЕ НЕ В КОРНЕ САЙТА2, не выводятся... :(((
Вот было бы замечательно, если как-нибудь ROOT сайта подменить...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования