2011-08-26 8 views
10

Mam dwie aplikacje uruchomione na tym samym serwerze i chciałbym mieć jeden służył od podścieżki w url (IE):Apache alias wirtualnego hosta

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

Próbuję zrobić alias ale nie działa:

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

Czy wiesz, dlaczego to nie działa?

Próbowałem również dyrektywy pathpath bez żadnego sukcesu.

Czy wiesz, jak to osiągnąć?

Z góry dziękuję.

+2

Czy Twój virtualhost działa w ogóle? Cos, jeśli chcesz uzyskać do niego dostęp przez 'www.'', a także katalog główny domeny, powiedziałbym, że potrzebujesz' ServerAlias ​​www.foo.com' tam ... – DaveRandom

+0

Czy aplikacja używa dowolnego 'mod_rewrite? 'ing? – DaveRandom

+0

Oh przepraszam, w rzeczywistości adres jest bez www. Naprawiłem to w poście. Virtualhost działa, jestem w stanie uzyskać do niego dostęp, ale jeśli pójdę do/blogs/to nic nie robi. Obie aplikacje mają mon_rewrite wewnątrz .httaccess – Rafael

Odpowiedz

3

Korzystając AliasMatch zamiast Alias:

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

Lub, w przypadku:

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

czy za pomocą innego odrębnego subdomenę, jak bar.foo.com dla innych aplikacji?

Oto jak by to ustawić:

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