A few comments first:

1) Try to avoid proxying inside a <Location> block, unless you have a good
reason to. You have more control in the vhost context over the URI paths.
2) Stop using the 2.2 authz directives, those have been deprecated for over
a decade

Now, your ProxyPassReverse is effectively:

ProxyPassReverse /host1/ http://192.168.4.12/

This means that if the backend issues a Location: header to something other
than /host1/, you won't catch it. You need handle a more generic URI scheme.

On Tue, 4 Oct 2022 at 06:02, Duke Nguyen <duke.li...@gmx.com> wrote:

> Hello everyone,
>
> I have an issue with the proxy and subdirectory on httpd. What I wanted is
> whenever clients access http://mydomain.com/host1/, the server *host A*
> will proxy it to *host B* internally, with the URI
> http://mydomain.com/host1/ base unchanged. The httpd.conf on *host A* has
> the following:
>
> <VirtualHost *:80>
> ServerName mydomain.com
> ProxyPreserveHost on
> <Location ā€œ/host1/ā€œ>
> ProxyPass "http://192.168.4.12/"; retry=0
> ProxyPassReverse "http://192.168.4.12/";
> </Location>
> </VirtualHost>
>
> In the above httpd.conf, the internal IP 192.168.4.12 is the IP of the *host
> B*, and *host1* is just a *virtual* directory that I’d like to name it.
> The *host B* is serving phpMyAdmin page, with the following httpd.conf
>
> <VirtualHost *:80>
> DocumentRoot /var/www/html/phpMyAdmin
> <Directory /var/www/html/phpMyAdmin>
> Options Indexes FollowSymLinks MultiViews
> AllowOverride All
> Order allow,deny
> allow from all
> </Directory>
> ServerName 192.168.4.12
> ErrorLog logs/192.168.4.12_81_error_log
> CustomLog logs/192.168.4.12_81_access_log common
> </VirtualHost>
>
> Accessing phpMyAdmin on *host B* internally in my network, with the URL
> http://192.168.4.12/ work just fine, ie http://192.168.4.12/index.php?abc
> will show http://192.168.4.12/index.php?abc. However, when I tried
> externally, it does not work as expected:
>
>    - Accessing http://mydomain.com/host1/index.php works fine, showing
>    phpMyAdmin log in page
>    - After entering username / password to log in, the URL on my browser
>    becomes http://mydomain.com/index.php?token=abc instead of
>    http://mydomain.com/host1/index.php?token=abc. Somehow the virtual
>    subdirectory *host1* disappeared.
>
> Please help!
>
> Thanks
>
> D.
>

Reply via email to