2010-12-27 12 views
24

Come posso avere la seguente configurazione in Apache?Apache multiple DocumentRoot

http://server/ABC/* va servito da /var/www/ABC/*

http://server/PQR/* va servito da /var/www/PQR/*

Ogni altra richiesta va servito da /var/www/Others/index.php (un unico file).

Grazie,

JP

+2

Per la prima parte della tua domanda: [Alias] (http://httpd.apache.org/docs/current/mod/mod_alias.html#alias) ('Alias ​​/ ABC/var/www/ABC 'ecc.) Lasciando DocumentRoot come/var/www/Others/ – plundra

risposta

1

Si può fare questo con mod_alias, che fa parte della distribuzione Apache.

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

per servire tutto il resto con il singolo file si usa mod_rewrite. Questo ha molte caratteristiche e, a seconda delle esigenze si potrebbe aver bisogno di tweak che .. ma qualcosa come questo dovrebbe funzionare:

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

si dovrebbe mettere che in un file .htaccess nella root del documento.

+0

Puntando la root del documento su index.php, ma avvisa quando si riavvia Apache, ma * funziona *. Sto pensando se usare il suggerimento mod_rewrite o Tabers. –

23

Uso Alias:

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

Lasciare la punta radice del documento per /var/www/Others/index.php. Potrebbe fare il trucco. :)

+0

Può essere usato per puntare '/' in un'altra directory? per esempio. 'Alias ​​//var/www/wordpress /'? – crmpicco