In my application, I'm making some standard scenario where Java web app is deployed on JBoss with apache proxy upfront. The webapp is accessible from /esp context so direct url would be (but I've turned off HTTP for Jboss, only AJP):
http://1.2.3.4:8080/esp
Now, I've created subdomain and tried proxy move through apache root context. So I'd like apache to proxy:
https://mysubdomain.domain.com -> ajp -> Jboss /esp context app
I believe that I'm missing something obvious with my configuration, cause only root application context is accessible, and rest of url have dulicated context which ends with 404. For example request are proxied like this:
https://mysubdomain.domain.com/css/somecss.css -> ajp -> /esp/esp/css/somecss.css
Apache configuration looks like this:
<VirtualHost 1.2.3.4:80>
ServerName mysubdomain.domain.com
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost 1.2.3.4:443>
ServerName mysubdomain.domain.com
ProxyPass / ajp://localhost:8009/esp/
ProxyPassReverse / ajp://localhost:8009/esp/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mantis>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/esp.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /var/keys/server.crt
SSLCertificateKeyFile /var/keys/server.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Moreover, when I add additional proxies upfront, everything works:
ProxyPass /esp/ ajp://localhost:8009/esp/
ProxyPassReverse /esp/ ajp://localhost:8009/esp/
Except that app is accessible from apache on both context: /
and /esp
while I want only root. How can I fix it?