10

我有两个应用程序在同一台服务器上运行,我想从 url 中的子路径提供一个(即):

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

我正在尝试使用别名但不工作:

<VirtualHost *:80>
  ServerAdmin webmaster@foo.com
  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 指令,但没有成功。

你知道如何实现这一目标吗?

提前致谢。

4

2 回答 2

3

使用AliasMatch代替Alias

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

或者,在您的情况下:

AliasMatch ^/blog/?(.*) /webapps/blog/current/$1
于 2013-11-01T22:22:04.940 回答
0

您是否考虑过使用另一个单独的子域,例如bar.foo.com用于您的其他应用程序?

以下是您的设置方式:

<VirtualHost *:80>
    ServerAdmin webmaster@foo.com
    DocumentRoot /var/www/foo
    ServerName foo.com
    ServerAlias foo.com www.foo.com
    ErrorLog logs/foo.com_Error_Log
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@foo.com
    DocumentRoot /var/www/bar
    ServerName bar.foo.com
    ErrorLog logs/bar.foo.com_Error_Log
</VirtualHost>
于 2014-09-10T18:23:53.633 回答