<VirtualHost *> ServerName www.example.com ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ProxyPreserveHost On </VirtualHost>
Change 3000 to whatever port you need and make sure the internal server is set up to answer requests on that port (not port 80). The ProxyPreserveHost line is critical to keep all your URLs working correctly.
In other words you forced to change apache's config files (/etc/apache2 in most *nix)
I have a solution I use at my server to proxy (not redirect!)
http://<servername>:80/folder1 -> http://<servername>:8080/folder2
and still be able to access other paths as usual. Please note both port and path are changed, while path in user's browser stays untouched (that I mean "not redirect").
Req:
apache2, mod_rewrite, mod_proxy, mod_proxy_http
Create following .htaccess file in /var/www/folder1
No additional changes are required (except enabling .htaccess in apache2.conf if disabled) in /etc/apache2