Search code examples
linuxapacheubuntuodoovirtualhost

Exclude an alias from virtualhost proxypass


I've following virtual host configuration. The desired result is:

  1. If someone requests http://test.myserver.com/myapp, apache serves him from /var/www/myapp
  2. And if http://test.myserver.com/ is requested, apache redirects it to port 8069.

2nd is working but 1st is not. Can someone help please!

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

Solution

  • This is how I was able to achive the desired outcome. Following is the working configuration where ProxyPassMatch ^/myapp ! did the trick and except the (server-address)/myapp, all the requests are being proxying to the other server which is open-erp running at port 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>
    
            ProxyPassMatch ^/myapp !
            ProxyPass / http://localhost:8069/
            ProxyPassReverse / http://localhost:8069/
    
    
      CustomLog /var/log/apache2/access.log common
      ErrorLog /var/log/apache2/error.log
    
    </VirtualHost>