2011-08-26 11 views
10

Tengo dos aplicaciones que se ejecutan en el mismo servidor y me gustaría tener uno sirve de subtrazado en la URL (es decir):Apache alias de host virtual

  • foo.com ->/var/www/foo
  • foo.com/bar ->/var/www/bar

que estoy tratando de hacer un alias, pero no está funcionando:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName foo.com 
    DocumentRoot /webapps/foo/current/public 
    <Directory /webapps/foo/current/public> 
    AllowOverride all 
    Options -MultiViews 
    </Directory> 
    RailsEnv staging 
    Alias /blog /webapps/blog/current 
<Directory /webapps/blog/current> 
    allow from all 
    Options +Indexes 
</Directory> 

¿Sabes por qué esto no funciona?

También probé la directiva de servidor sin éxito.

¿Sabes cómo lograr esto?

Gracias de antemano.

+2

Está su host virtual funciona en absoluto? Porque si necesita acceder a través de 'www.'' así como la raíz del dominio, diría que necesita un' ServerAlias ​​www.foo.com' allí ... – DaveRandom

+0

Además, ¿utiliza cualquiera de las aplicaciones 'mod_rewrite 'ing? – DaveRandom

+0

Oh, lo siento, en realidad la dirección es sin www. Lo arreglé en la publicación. El servidor virtual funciona, puedo acceder a él, pero si voy a/blogs/no hace nada. Ambas aplicaciones tienen mon_rewrite dentro de su .httaccess – Rafael

Respuesta

3

Uso AliasMatch en lugar de Alias:

AliasMatch ^/bar/?(.*) /var/www/bar/$1 

O, en su caso:

AliasMatch ^/blog/?(.*) /webapps/blog/current/$1 
0

¿Usted ha considerado el uso de otro subdominio por separado, al igual que para su bar.foo.com otra aplicación?

Así es como lo haces con eso:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/foo 
    ServerName foo.com 
    ServerAlias foo.com www.foo.com 
    ErrorLog logs/foo.com_Error_Log 
</VirtualHost> 
<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/bar 
    ServerName bar.foo.com 
    ErrorLog logs/bar.foo.com_Error_Log 
</VirtualHost> 
Cuestiones relacionadas