2010-12-27 3 views
24

Как я могу установить следующую настройку в apache?Apache multiple DocumentRoot

http://server/ABC/* должны обслуживаться /var/www/ABC/*

http://server/PQR/* должны обслуживаться /var/www/PQR/*

Любой другой запрос должен обслуживаться /var/www/Others/index.php (один файл).

Спасибо,

JP

+2

Для первой части вашего вопроса: [Псевдоним] (http://httpd.apache.org/docs/current/mod/mod_alias.html#alias) ('Alias ​​/ ABC/var/www/ABC 'и т. д.) Оставляя DocumentRoot as/var/www/Others/ – plundra

ответ

1

Вы можете сделать это с mod_alias, который является частью дистрибутива Apache.

http://httpd.apache.org/docs/current/mod/mod_alias.html

для обслуживания все еще с одного файла вы будете использовать mod_rewrite. Это имеет множество функций, и в зависимости от ваших потребностей вы, возможно, потребуется настроить что .. но что-то, как это должно работать:

RewriteEngine on 
RewriteRule ^(.*)$ /index.php?path=$1 [L] 

вы бы положить, что в файл .htaccess в корне документа.

+0

Указывая корень документа на index.php, но дает предупреждения при перезапуске apache, но * works *. Я думаю, следует ли использовать предложение mod_rewrite или Tabers. –

23

Использование Alias:

Alias /ABC/ /var/www/ABC/ 
Alias /PQR/ /var/www/PQR/ 

Оставьте корневой документ, указывающий на /var/www/Others/index.php. Это может сделать трюк. :)

+0

Можно ли это использовать для указания '/' в другой каталог? например 'Alias ​​//var/www/wordpress /'? – crmpicco