Вопрос по Apache, возможно Alias-rewrite и и DOCUMENT_ROOT

antivir

Новичок
Вопрос по Apache, возможно Alias-rewrite и и DOCUMENT_ROOT

Привет усем!
Подскажите, как решить такую задачу: есть домен, на котором расположен некий ресурс - сайт. По требованию, в директорию /dir/dir/ нужно добавить другую систему, другую CMS, которая была бы доступна по адресу www.server.com/dir/dir/

Как можно сделать на уровне сервера так, что бы при запросе www.server.com/dir/dir/* Apache работал бы с запросом так, как будто директорий /dir/dir не существует, т.е. как будто бы запрос шёл прямиком в root?


Я объясню зачем мне это нужно: дело в том, что при использовании mod_rewrite модуля, сохранить работоспособность системы невозможно, если система лежит не в корне виртуального сервера.

Поэтому, приходится в хтацесс и в скриптах и шаблонах указывать некую константу ROOT. Тогда, при использовании mod_rewrite в файле конфигурации мы пишем:

Код:
RewriteBase /dir/dir/
а во всех скриптах и шаблонах приходится писать нечто

PHP:
<a href="<?=ROOT?>/link.html">blablabala</a>
где ROOT будет равен /dir/dir

Это очень неудобно. Посоветуйте выход!
 

Gorynych

Посетитель PHP-Клуба
antivir
дело не в том, что при использовании mod_rewrite сохранить работоспособность системы невозможно, а в том наборе правил, которые Вы используете и способностях используемой CMS работать не в корневой директории.

Вы что-нибудь слышали о субдоменах? По-моему это как раз ваш случай.
 

antivir

Новичок
Gorynych
Да, я понимаю, что субдомены - это выход. Я просто чисто теоретически рассматриваю этот вопрос, хотя в своей CMS, которую начал разрабатывать, столкнулся с этой ситуацией.

Вы сами как считаете, возможна ли в реале ситуация, когда сайт нужно будет держать не на домене N-ного уровня, а в поддиреториях домена?
 

Gorynych

Посетитель PHP-Клуба
да, ситуация возможна. Только давайте определимся с понятиями.

это будет не сайт, а подсайт. Он будет расположен в некотором подпространстве базового сайта. Если рассматривать это как веб-приложение, то можно ввести понятие корня веб-приложения (application root).

в простом случае, когда веб-приложение это сам сайт, корень веб-приложения совпадает с DOCUMENT_ROOT. Если веб-приложение расположено внутри сайта - корень веб-приложения будет DOCUMENT_ROOT + путь от корня сайта.

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

antivir

Новичок
Понятно.

Видимо нет других вариантов, как прописывать явно DOCUMENT_ROOT + путь от корня сайта.
 

Gorynych

Посетитель PHP-Клуба
antivir
Видимо нет других вариантов, как прописывать явно DOCUMENT_ROOT + путь от корня сайта
ну, если честно, то я обычно держу 2 (две) функции:

1. Первая убирает относительный путь от корня сайта до приложения из ссылок, картинок, путей к css / js файлы и т.п. при сохранении данных и шаблонов

2. Вторая добавляет относительный путь от корня сайта к ссылкам, картинкам, путям к css / js файлы и т.п. при выводе данных и шаблонов. В том числе - при работе в интерфейсе редактирования.

Зачем? Затем чтобы при переносе приложения изменять только значение application root в конфигурационном файле.
 
Сверху