2

我有一个由 Apache 提供服务的 Apache Sling 应用程序。但是,当有人访问相同的 url 但 /mstarfb 在 url 的前面时,他们将通过 Passenger 由 Ruby on Rails 应用程序提供服务。我想添加第二个由 /i-metaphor 提供的 Ruby on Rails 应用程序。

这是我目前拥有和工作的内容:

<VirtualHost *:80>
    ServerName beta.example.com

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

PassengerEnabled off

ProxyPassMatch ^/(?!mstarfb)(.*) http://127.0.0.1:8890/$1   
ProxyPassReverse / http://beta.example.com:8890


DocumentRoot /home/ruby/webapps/m-star-fb/current/public
    <Directory "/home/ruby/webapps/m-star-fb/current/public">
        PassengerEnabled on
        RailsBaseURI /mstarfb
        # This relaxes Apache security settings.
        AllowOverride all
        # MultiViews must be turned off.
        Options -MultiViews FollowSymLinks
        Order allow,deny
        Allow from all
    </Directory>

第一个问题是正则表达式的外观。我尝试了各种我能想到的组合,但我不确定它们是否失败是因为正则表达式错误,还是因为我的其余配置错误。像:

ProxyPassMatch ^/(?!mstarfb|?!i-metaphor)(.*) http://127.0.0.1:8890/$1

第二个问题是如何组织虚拟主机?在我尝试过的代理行之后:

    DocumentRoot /home/ruby/webapps
    <Directory "/home/ruby/webapps/m-star-fb/current/public">
    PassengerEnabled on
    RailsBaseURI /mstarfb
        AllowOverride all
        Options -MultiViews FollowSymLinks
        Order allow,deny
        Allow from all
    </Directory>

但它破坏了我的第一个应用程序......我还没有尝试添加第二个应用程序。

4

0 回答 0