Apache alias виртуальный хост

У меня есть два приложения, работающие на одном сервере, и я хотел бы, чтобы один из них использовался из подкаталога в URL-адресе (i.e):

  • foo.com → /var/www/foo
  • foo.com/bar → /var/www/bar

Я пытаюсь сделать псевдоним, но не работает:

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

Вы знаете, почему это не работает?

Я также пробовал директиву serverpath без каких-либо успехов.

Вы знаете, как достичь этого?

Спасибо заранее.

Ответ 1

Используйте AliasMatch вместо Alias:

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

Или, в вашем случае:

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

Ответ 2

Рассматривали ли вы использование другого отдельного субдомена, например bar.foo.com для вашего другого приложения?

Вот как вы это настроили:

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