2010-12-27 16 views
24

Jak mogę mieć następujące ustawienia w Apache?Apache wielu DocumentRoot

http://server/ABC/* powinny być podawane przez /var/www/ABC/*

http://server/PQR/* powinny być podawane przez /var/www/PQR/*

Każda inna żądanie powinny być podawane przez /var/www/Others/index.php (pojedynczy plik).

Dzięki,

JP

+2

Pierwsza część pytania: [Alias] (http://httpd.apache.org/docs/current/mod/mod_alias.html#alias) ('Alias ​​/ ABC/var/www/ABC 'itp.) Pozostawienie DocumentRoot jako/var/www/Others/ – plundra

Odpowiedz

1

Można to zrobić z mod_alias, która jest częścią dystrybucji Apache.

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

do serwowania wszystkiego innego z jednego pliku byłoby użyć mod_rewrite. To ma wiele funkcji i zależności od potrzeb może być konieczne, aby dostosować, że .. ale coś jak to powinno działać:

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

byś umieścić, że w pliku .htaccess w katalogu głównym dokumentu.

+0

Wskazanie katalogu głównego dokumentu na index.php, ale daje ostrzeżenia podczas restartowania apache, ale * działa *. Zastanawiam się, czy użyć sugestii mod_rewrite, czy Tabers. –

23

Zastosowanie Alias:

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

Pozostawić wskazując główny dokument do /var/www/Others/index.php. To może załatwić sprawę. :)

+0

Czy można tego użyć do wskazania '/' do innego katalogu? na przykład 'Alias ​​//var/www/wordpress /'? – crmpicco