The cause of this is that apache is unable to add your chosen prefix to each and every reference that the page makes to (mostly) static content like stylesheets, images and java include scripts. As a result your browser will request those files to be served from your regular webroot where of course these files do not exist.
The answer is: you need to create a separate vhost. One where you can proxy '/' in stead of needing to proxy '/app' and thus do not need to translate any included links.
The virtual host definition is quite simple:
Code: Select all
<VirtualHost *:80>
ServerName squeezebox
ServerAlias squeezebox.localdomain
DocumentRoot /home/www
ErrorLog logs/squeezebox_log
CustomLog logs/squeezebox-access_log common
<Proxy *>
Order deny,allow
Deny from all
Deny from 192.168.10.1
Allow from 192.168.10.0/24
</Proxy>
ProxyPreserveHost On
ProxyRequests off
ProxyPass / http://localhost:9000/
ProxyPassReverse / http://localhost:9000/
</VirtualHost>
Code: Select all
<Proxy *>
<RequireAll>
Require not ip 192.168.10.1
Require ip 192.168.10.0/24
</RequireAll>
</Proxy>
Code: Select all
192.168.10.1 b3 b3.localdomain squeezebox.localdomain
Code: Select all
/etc/init.d/apache2 reload
/etc/init.d/dnsmasq restart
Note: be aware that apache will take your first vhost definition (the one in the file that is on top when sorted by name) as your default host. Any request to the server that does not match a vhost's ServerName or ServerAlias directive will be served by the default host.