繁体   English   中英

从virtualhost proxypass中排除别名

[英]Exclude an alias from virtualhost proxypass

我正在关注虚拟主机配置。 期望的结果是:

  1. 如果有人请求http://test.myserver.com/myapp,apache会从/ var / www / myapp为他提供服务
  2. 如果请求http://test.myserver.com/,apache会将其重定向到端口8069。

第二个工作,但第一个不工作。 请有人帮忙!

<VirtualHost *:80>
        ServerName test.myserver.com

        Alias /myapp /var/www/myapp
        <Directory /var/www/myapp>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>

        ProxyPass / http://localhost:8069/
        ProxyPassReverse / http://localhost:8069/

</VirtualHost>

这就是我能够达到预期结果的方式。 以下是ProxyPassMatch ^/myapp !的工作配置ProxyPassMatch ^/myapp ! 除了(服务器地址)/ myapp之外,所有的请求都是代理到另一个服务器,它是在端口8069上运行的open-erp:

<VirtualHost *:80>
        ServerName test.myserver.com

        Alias /myapp /var/www/myapp
        <Directory /var/www/myapp>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>

        ProxyPassMatch ^/myapp !
        ProxyPass / http://localhost:8069/
        ProxyPassReverse / http://localhost:8069/


  CustomLog /var/log/apache2/access.log common
  ErrorLog /var/log/apache2/error.log

</VirtualHost>

而不是使用: ProxyPassMatch ^/myapp ! 您可以在定义/之前添加另一个ProxyPass指令,如下所示:

ProxyPass /myapp !
ProxyPass / http://localhost:8069/

由于ProxyPass尊重优先级(将处理第一个匹配),因此它将正确地重定向到目录而不是代理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM