Псевдоним виртуального хоста Apache

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

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

Do you know why this is not working?

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

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

Заранее спасибо.


person Rafael    schedule 26.08.2011    source источник
comment
Ваш виртуальный хост вообще работает? Потому что, если вам нужно получить к нему доступ через www., а также через корень домена, я бы сказал, что вам нужен ServerAlias www.foo.com там...   -  person DaveRandom    schedule 26.08.2011
comment
Кроме того, какое-либо приложение использует mod_rewriteing?   -  person DaveRandom    schedule 26.08.2011
comment
Ой извините, на самом деле адрес без www. Я исправил это в посте. Виртуальный хост работает, я могу получить к нему доступ, но если я захожу в /blogs/, он ничего не делает. Оба приложения имеют mon_rewrite внутри своего .httaccess.   -  person Rafael    schedule 26.08.2011
comment
Что вы получаете? 404? А что в логах апача? И используете ли вы [PT] правила перезаписи для каталога /blogs?   -  person DaveRandom    schedule 26.08.2011
comment
Я получаю 404, который обрабатывается /var/www/foo. У меня нет правила перезаписи [PT]. На самом деле у меня нет перезаписи для блога... Я использую его для других целей. Должен ли я переписать и псевдоним, чтобы заставить его работать?   -  person Rafael    schedule 27.08.2011
comment
Не обязательно, это зависит от вашего приложения - просто некоторые правила перезаписи не будут работать с псевдонимами, если у вас нет [PT] (хотя не все правила, это зависит от того, что оно делает). Позвольте мне поиграть с установкой Apache на моем ноутбуке, и я свяжусь с вами...   -  person DaveRandom    schedule 27.08.2011
comment
как насчет использования поддомена, такого как bar.foo.com. Таким образом, у него будет собственная конфигурация виртуального хоста.   -  person minaz    schedule 29.08.2011
comment
субдомен такой, какой я его знаю, но мы хотели изменить его на другой.   -  person Rafael    schedule 03.09.2011
comment
Помимо настройки конфигурации Apache, вы когда-нибудь пытались создать символическую ссылку /var/www/bar на /var/www/foo/bar?   -  person stanleyxu2005    schedule 12.10.2014


Ответы (2)


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

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

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

AliasMatch ^/blog/?(.*) /webapps/blog/current/$1
person Niklas Lindblad    schedule 01.11.2013

Рассматривали ли вы возможность использования другого отдельного поддомена, например 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>
person user3092711    schedule 10.09.2014