2012-07-17 20 views
12

En mi /var/www tengo una serie de sitios (goodsite, badsite, uglysite). En este momento se accede por mydomain.com/goodsite, etc.Apache map subdominio único a la carpeta

Lo que quiero es que un sitio en particular, feo, sea accedido por uglysite.mydomain.com - los demás permanecen como están.

He intentado todo tipo de formas de tocar el .htaccess (en /var/www). Tenga en cuenta que tengo mod-rewrite habilitado y mod vhost-alias habilitado.

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

Lo que termina pasando es que tanto mydomain.com y uglysite.mydomain.com siempre corresponderse con una misma cosa (es decir, el índice en /var/www). Traté de agregar un nuevo host virtual, y me sorprendí al encontrar que uglysite.mydomain.com se correlacionó correctamente, pero luego mydomain.com también se asignó directamente a uglysite también.

<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> 

Lo anterior se agregó a mi archivo habilitado para sitios/000-default. Esto hizo que uglysite.mydomain.com funcionara correctamente, ¡pero luego mydomain.com se asignó a la misma cosa!

¿Hay una manera directa de hacer lo que tengo la intención de hacer? Gracias por adelantado.

Respuesta

15

usted debe hacer uglysite en un segundo archivo en lugar de modificar 000-default

lo tanto, tener una copia del archivo 000-predeterminada, cambie el subdominio como lo han hecho hasta allí y modificar el directorio a/ruta/a/sitio

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> 

También tenga en cuenta que en los ejemplos anteriores, he modificado el DocumentRoot para que apunte al directorio que desea archivo sirve de

EDIT: establecen VirtualHosts a *: 80 desde sus sitios apuntan a su propio IP de todos modos

+0

Gracias probaré esto ahora mismo. –

+0

Debería estar haciendo este archivo en/etc/apache2/sites-available btw y symlinking ('ls -s sites-available/uglysite sites-enabled/uglysite') en sitios habilitados – arcyqwerty

+0

¿Debo incluirlo explícitamente en cualquier lugar? ? –

Cuestiones relacionadas