Eu tenho um aplicativo antigo com URLs do formulário ...
http://apps.myserver.com/appname/viewItem.akt?p=123
Estou substituindo esse aplicativo antigo por um que tenha URLs como ...
http://appname.myserver.com/item/123
Eu tentei adicionar várias regras diferentes de reescrita a httpd/httpd.conf
e reiniciar o servidor, mas continuo recebendo erros 404.
Algumas coisas que eu tentei ...
RewriteEngine on
RewriteRule ^.*viewItem.akt\?p=([0-9]*)$ http://appname.myserver.com/item/$1 [R]
Ou ...
RewriteRule ^/appname/viewItem.akt\?p=([0-9]*)$ http://appname.myserver.com/item/$1 [R]
O resultado é sempre "O URL solicitado /appname/viewItem.akt não foi encontrado neste servidor", como se a regra de reescrita não estivesse lá.
O que eu estou recebendo no log de acesso é ...
[IP address] - - [09/Sep/2011:21:27:37 -0700] "GET /appname/viewItem.akt?p=1018 HTTP/1.0" 404 248
Eu testei todos os meus regexes em Rubular para verificar se eles correspondem à solicitação recebida.
O que estou perdendo?
Caso seja relevante, o aplicativo antigo era um aplicativo Java em execução no Tomcat e eu tinha um ProxyPass configurado assim ...
(Estou mostrando essas linhas comentadas, como estão quando estou tentando fazer com que a regra de reescrita funcione.)
# ProxyPass /appname http://apps.myserver.com:8080/appname
# ProxyPassReverse /appname http://apps.myserver.com:8080/appname
Mas isso não importa direito? Contanto que minha regra de reescrita corresponda à solicitação, ela deve ser enviada corretamente, não é?