2012-07-17 18 views
12

Nel mio /var/www ho un numero di siti (goodsite, badsite, brutto sito). Al momento sono accessibili da mydomain.com/goodsite, ecc.apache map sottodominio singolo nella cartella

Quello che voglio è per un sito in particolare, brutto, per accedere da uglysite.mydomain.com - gli altri rimangono come sono.

Ho provato tutti i tipi di modi di giocherellare con the.htaccess (in /var/www). Nota: ho attivato la riscrittura mod e mod vhost-alias abilitato.

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^uglysite\.mydomain\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/uglysite/ 
RewriteRule ^(.*)$ /uglysite/$1 [L] 

Ciò che finisce accadendo è che sia mydomain.com e uglysite.mydomain.com sempre mappare la stessa cosa (vale a dire, l'indice a /var/www). Ho provato ad aggiungere un nuovo host virtuale e sono rimasto sorpreso nel constatare che uglysite.mydomain.com è stato mappato correttamente, ma anche mydomain.com ha eseguito il mapping direttamente a uglysite.

<Virtualhost uglysite.mydomain.com:80> 
     ServerName uglysite.mydomain.com 
     ServerAdmin [email protected] 
     DocumentRoot "/var/www/" 
     AccessFileName .htaccess 
     <Directory "/var/www/uglysite"> 
       Order allow,deny 
       Allow from All 
       AllowOverride All 
     </Directory> 
</VirtualHost> 

Quanto sopra è stato aggiunto al file/000 predefinito predefinito. Ciò ha reso brutto site.mydomain.com, ma poi mydomain.com ha mappato la stessa cosa!

C'è un modo semplice per fare ciò che intendo fare ?? Grazie in anticipo.

risposta

15

si dovrebbe fare uglysite in un secondo file invece di modificare 000-default

Quindi, fare una copia del file 000-default, cambiare il sottodominio come avete fatto lì e modificare la directory a/path/to/Area

000-default:

<Virtualhost *:80> 
     ServerName mydomain.com 
     ServerAdmin [email protected] 
     ServerAlias mydomain.com 
     DocumentRoot "/var/www/goodsite" 
     AccessFileName .htaccess 
     <Directory "/var/www/goodiste"> 
       Order allow,deny 
       Allow from All 
       AllowOverride All 
     </Directory> 
</VirtualHost> 

uglysite:

<Virtualhost *:80> 
     ServerName uglysite.mydomain.com 
     ServerAlias uglysite.mydomain.com 
     ServerAdmin [email protected] 
     DocumentRoot "/var/www/uglysite" 
     AccessFileName .htaccess 
     <Directory "/var/www/uglysite"> 
       Order allow,deny 
       Allow from All 
       AllowOverride All 
     </Directory> 
</VirtualHost> 

Si noti inoltre che nei campioni di cui sopra, ho modificato il DocumentRoot per puntare alla directory che si desidera il file servita dalle

EDIT: VirtualHosts impostati su *: 80 dal vostri siti puntano al tuo ip comunque

+0

Grazie, ci provo proprio ora. –

+0

Dovresti creare questo file in/etc/apache2/sites-disponibile btw e symlinking ('ln -s sites-available/brutto sito-enabled/uglysite') in siti abilitati – arcyqwerty

+0

Devo includerlo esplicitamente ovunque ? –