For example, an HTTP redirection often takes place when a user (or author) forgets a trailing slash in a URL. So the response to a request for http://www.example.com/app1/foo proxies to http://internal.example.com/foo which generates a response:
HTTP/1.1 302 Found
Location: http://internal.example.com/foo/
(etc)
But from the outside world, the net effect of this is a "No such host" error. The proxy needs to re-map the Location header to its own address space and return a valid URL
HTTP/1.1 302 Found
Location: http://www.example.com/app1/foo/
The command to enable such rewrites in the HTTP Headers is ProxyPassReverse. The Apache documentation suggests the form:
I have the following in my apache2 conf file
<VirtualHost *:80>
ServerName my.computer.edu
DocumentRoot "/path/to/Sites"
<Proxy *>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Proxy>
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
ProxyPreserveHost On
ProxyPass /d/apps http://127.0.0.1:25012
ProxyPassReverse /d/apps http://127.0.0.1:25012
</VirtualHost>
When I go to http://my.computer.edu/d/apps/js/app.js the log shows
request: GET //js/app.js from 127.0.0.1 in ../Dancer/Handler.pm l. 52
When I go to http://127.0.0.1:25012/js/app.js the log shows
request: GET /js/app.js from 127.0.0.1 in ../Dancer/Handler.pm l. 52
Why do I get to leading slashes in the first request above?
Additionally, when I go to http://my.computer.edu/d/apps I get a correct response (the double slashes notwithstanding). However, when I go to http://my.computer.edu/d/apps/foo then I get a 404. My perl code is like so
package apps;
use Dancer ':syntax';
use Dancer::Plugin::Database;
load_app 'eb', prefix => '/foo';
--
Puneet Kishor
_______________________________________________
Dancer-users mailing list
Dancer-users@perldancer.org
http://www.backup-manager.org/cgi-bin/listinfo/dancer-users