Não use mod_rewrite a menos que você tenha uma razão para fazer isso.
Tente isso (coloque-o no bloco <VirtualHost>
):
ProxyPass /atom http://127.0.0.1:4000/atom
ProxyPassReverse /atom http://127.0.0.1:4000/atom
Isso parece simples, mas não consigo fazer funcionar.
Eu tenho um servidor da Web bastante trivial que precisa apenas fazer duas coisas:
Isso não funcionou:
RewriteRule ^$ http://localhost:4000
Isso redirecionou o tráfego de volta ao localhost: 4000 do ponto de vista do solicitante (ou seja, na máquina do cliente).
Meu entendimento limitado do VirtualHost indica que é algo como atom.example.com, não example.com/atom
Acho que tenho que usar o ProxyReverse, mas não consigo encontrar a combinação certa.
ATUALIZAÇÃO: Tentar a sugestão ProxyPass / ProxyReverse dada por Shane Madden produz isso no arquivo de log de erros:
[Thu Mar 15 11:59:15 2012] [error] (13)Permission denied: proxy: HTTP: attempt to connect to 127.0.0.1:4000 (localhost) failed
[Thu Mar 15 11:59:15 2012] [error] ap_proxy_connect_backend disabling worker for (localhost)
[Thu Mar 15 11:59:17 2012] [error] proxy: HTTP: disabled connection for (localhost)
(O servidor local está definitivamente rodando em 127.0.0.1:4000)