LINUX.ORG.RU
ФорумAdmin

apache mod_rewrite. Need HELP!!!

 , ,


0

2

Доброго времени суток. Помогите побороть mmod_rewriteod_rewrite. Постараюсь вкратце описать суть вопроса. Есть сайт, ну к примеру http://www.example.com (ничего примечательного), в корне которого есть index.html, на которой отображаются коментарии и есть форма для добавления новых (сайт крутится на апаче с включенным mod_rewrite). Все коментарии сохраняются в виде отдельных страниц в папке /comments - http://www.example.com/comments/.. Подскажите плиз, как правильно реализовать редирект с любой страницы этого сайта на его «копию», которая находится на другом серве с нджиниксом. еще раз повторюсь, структура копии аналогична оригиналу. «Слишком умных» прошу не беспокоиться - пусть Ваше раздутое эго останется без внмиания! Остальных, желающих помочь, готов выслушать и принять во внимание адекватную критику в свой адресс. Конфигурация хоста:

<VirtualHost 1.2.3.4:80>
  ServerName example.com
  ServerAlias www.example.com
  SuexecUserGroup "#760" "#643"
  DocumentRoot /home/example/public_html
  ErrorLog /home/example/logs/error_log
  CustomLog /home/example/logs/access_log combined
  ScriptLog /home/example/logs/cgi_log
  ScriptAlias /cgi-bin/ /home/example/cgi-bin/
  <Directory /home/example/public_html>
Options Indexes Includes ExecCGI SymLinksifOwnerMatch
allow from all
AllowOverride All
  </Directory>
  <Directory /home/example/public_html/comments>
Options Indexes Includes ExecCGI SymLinksifOwnerMatch
allow from all
AllowOverride All
  </Directory>
RewriteEngine on
RewriteBase /
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^(.*)$ index.html [L,QSA]
</VirtualHost>

Все коментарии сохраняются в виде отдельных страниц в папке /comments

Зачем?
О.о

shuck ★★★ ()

Почему просто не отправлять пользователя на «копию»? На «основном» сайте пишем заглушку - получаем путь, по которому хотел пройти пользователь, меняем домен и хедером возвращаем. В итоге после первой же попытки зайти на основной сайт пользователь будет перекинут в такой же путь на «копии».

alozovskoy ★★★★★ ()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Ну идею то я понял. Если не затруднит, могли бы Вы подсказать как именно изменить представленный конфиг «оригинала»? НО, еще один момент - «копия» закручена на nginx.

xanderlexx ()
Ответ на: комментарий от xanderlexx

Сейчас тапки полетят, но я бы сделал это на php каком-нибудь, потому что mod_rewrite, по сути, не перенаправит пользователя на страницу а просто отдаст другую страницу вместо требуемой, а это дополнительная нагрузка на сервер и прочие проблемы (ну еще и потому что я не очень с mod_rewrite). Вот как это на php

<?php
header('Location: http://www.copy_of_example.com/'.$_SERVER['REQUEST_URI']);

Тут мы отдадим браузеру заголовок с ссылкой на копию сайта (домен) + адрес страницы, которую запросил пользователь.

alozovskoy ★★★★★ ()
Последнее исправление: alozovskoy (всего исправлений: 1)

А не проще ли reverse proxy настроить? Или я неверно понял проблему?

strangeman ★★★★ ()
Ответ на: комментарий от alozovskoy

Отлично. НО, мне как-бы «запрещено», вносить изменения в код самих страничек.

xanderlexx ()
Ответ на: комментарий от xanderlexx

А можно по-точнее? Хотя понимаю, что "....иди кури маны, .... пользйся гуглом" - здесь не буду отпираться... Курил маны (на инглише и так), гуглил... Вполне вероятно, что просто нет достаточного опыта + офигенное оличество информации дают, дают эффект «ступора»... Потому попрошу, если это не затруднит, какой-нибудь «пример». Хотя, понимаю, что моя ситуация не является чем-то оригинальным..

xanderlexx ()
Ответ на: комментарий от xanderlexx

Ну через mod_rewrite это вроде

RewriteRule ^(.*)example.com(.*)$ $1example.org$2
alozovskoy ★★★★★ ()
Ответ на: комментарий от alozovskoy

И это все? Блин, а я себе представлял что-то вроде кучи строк и правил.....

xanderlexx ()
Ответ на: комментарий от xanderlexx

Не за что, отпишитесь потом, пожалуйста, о результатах.

alozovskoy ★★★★★ ()
Ответ на: комментарий от alozovskoy

Доброго времени суток. Прописал указанные Вами строчки - перенаправление работает. Правда столкнулся с другой проблемой: с одним сайтом - работает на отлично, да в принцыпе пусть их хоть косой десяток... Проблема немного в другом (хотя понимаю, что возможно, как говорится - «оффтоп») - на «оригинале» я установил такой редирект для двоих сайтов и... на «копии» перенесенные сайты прописал в конфиге нгникса (пути, ну и....). И вот, после того, как я ввожу, к примеру example.org, то перенаправление срабатывает и я вижу тот же example.org но на «копии». Казалось бы - отлично, НО, если в строке я прописываю example2.org, то меня перенаправляет на тот же example.org на «копии»! Могли бы Вы подсказать - как побороть такую беду?

xanderlexx ()
Ответ на: комментарий от xanderlexx

Либо правила редиректа некорректные, либо nginx так настроен, проверьте еще раз конфиги, скорее всего где-то ошибка.

alozovskoy ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.