Is it possible to internally redirect (so url won't change in address bar) with mod_rewrite to different port on same host? Eg
http://host.com:8080 -> http://host.com:9999/myapplication/?param=val
1, Enable mod_proxy
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
2, You should configure apache for vhost :
<VirtualHost *:8080>
....
ProxyPass / http://host.com:9999/myapplication/?param=val
ProxyPassReverse / http://host.com:9999/myapplication/?param=val
</VirtualHost>
3, Setup also VHost on port 9999
More info here:
Elaboration on the mod_proxy solution with [P]
, the proxy flag:
Enable modules mod_proxy and mod_proxy_http:
a2enmod proxy proxy_http
Without these two enabled, you'd later get a 300 Forbidden status and the error message "AH00669: attempt to make remote request from mod_rewrite without proxy enabled" in the logs.
Place the following into the Apache2 vhost config section for the forwarding host:
<VirtualHost *:8080>
…
RewriteEngine on
RewriteCond %{REQUEST_URI} !^$
RewriteCond %{REQUEST_URI} !^/
RewriteRule .* - [R=400,L]
RewriteRule (.*) http://host.com:9999/myapplication/$1?param=val [P,L]
…
</VirtualHost>
This includes a technique by Steve Webster to prevent malicious URL crafting, explained here. Not sure how to deal with appending the GET parameter in this context, though.
Restart Apache2:
sudo service apache2 restart
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With