Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

htaccess - возможно ли в зависимости от адреса подставлять разные файлы для отображения? для вывода разных адресов почты

ARO Гуру (3845), закрыт 13 лет назад
есть сайт по адресу: сайт1_ru
есть синоним сайта сайт1_ru по адресу: сайт2_ru

есть две страницы mail.php и mail.php размещенные в папках
/home/www/сайт1_ru/1/mail.php и /home/www/сайт1_ru/2/mail.php
(на каждой размещен адрес почты, соответственно mail@сайт1_ru и mail@сайт2_ru)

Необходимо, чтобы при открытии страницы сайт1_ru/mail.php открывалась страница /home/www/сайт1_ru/1/mail.php,
а при открытии страницы сайт2_ru/mail.php необходимо, чтобы открывалась страница /home/www/сайт1_ru/2/mail.php

сайт только один, второй сайт - синоним.

это вообще реально?
Лучший ответ
ЮЖАНИН Мудрец (13080) 13 лет назад
редирект делать не нужно -- всё намного проще:

Создадим в каталоге sites-available файлы сайт1.ru и сайт2.ru

Скопируем в него полностью содержимое файла /etc/apache2/sites-available/default и внесем некоторые изменения.

После строчки
ServerAdmin webmaster@localhost
добавим
ServerName сайт1.ru
ServerAlias www.сайт1.ru
а в другой файл
ServerName сайт2.ru
ServerAlias www.сайт2.ru

Заменим адрес директории
DocumentRoot /var/www
на
DocumentRoot /var/www1
DocumentRoot /var/www2
соответственно
AROГуру (3845) 13 лет назад
это всё хорошо.
а если у меня хостинг не на своём сервере, а покупной хостинг?
и доступа к /etc/apache2/sites-available/default у меня нет!
AROГуру (3845) 13 лет назад
на хостинге написали, что
Пример: особенность переадресации на синонимах
Предположим, есть домен domain1.tld и синоним domain2.tld. Если запросить в браузере адрес http://domain2.tld/dir/ со знаком слэша в конце, то будет отображена индексная страница из директории dir основного домена, при этом содержимое адресной строки браузера останется без изменений. Но если запросить http://domain2.tld/dir без слэша в конце, то произойдёт переадресация на http://domain1.tld/dir/, и содержимое адресной строки изменится соответствующим образом.
Такова особенность работы модуля mod_dir, при которой если происходит запрос файла, являющегося директорией, но запрос не оканчивается знаком слэш, то mod_dir осуществляет внешнюю переадресацию на тот же адрес со знаком слэша в конце. В случае синонима при переадресации заменяется и имя домена.
Если такое поведение веб-сервера вас не устраивает, добавьте в файл .htaccess следующие строки:
AROГуру (3845) 13 лет назад
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !^domain2.tld$
RewriteRule ^(.+[^/])$ http://domain2.tld/$1/ [R]
AROГуру (3845) 13 лет назад
но это не то, что нужно.
а нужно

RewriteEngine on
RewriteCond при запросе www.сайт2_ru/mail.php
RewriteRule открывать /home/www/сайт1_ru/2/mail.php

RewriteCond при запросе www.сайт1_ru/mail.php
RewriteRule открывать /home/www/сайт1_ru/1/mail.php

что-то никак не соображу....
Остальные ответы
Похожие вопросы