A bandeira [NE] na sua regra de reescrita está configurando para Sem Escape. Tente alterá-lo para [B] para escapar de referências anteriores.
Estou executando o Apache 2.2.15 como um proxy reverso na minha DMZ. Eu tenho um aplicativo na rede interna que disponibilizo na Internet para que os funcionários usem o proxy reverso.
Como parte deste aplicativo, a equipe pode ver mensagens com anexos em PDF. A equipe interna (que não precisa passar pelo proxy reverso) pode baixar esses PDFs sem problemas. O pessoal externo não pode.
Isso é o que eu vejo nos logs do Apache no servidor de aplicativos.
172.20.0.9 - - [04/Dec/2014:08:48:21 +1300] "GET /application/home/getAttachment/MTE7Y3lzdGljIGZpYnJvc2lzLnBkZg%3D%3D HTTP/1.1" 200 88090
10.0.0.2 - - [04/Dec/2014:08:48:27 +1300] "GET /application/home/getAttachment/MTE7Y3lzdGljIGZpYnJvc2lzLnBkZg== HTTP/1.0" 400 -
A primeira solicitação foi de um usuário interno que fez o download do arquivo PDF. O segundo vem do proxy reverso na DMZ. Observe como ele escapou do "% 3D% 3D" no final da URL para "==".
Há algumas coisas que estou fazendo no proxy reverso. Primeiro, se alguém tentar ir ao diretório raiz, uma regra de reconfiguração os enviará ao diretório do aplicativo.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/$ /application/ [NE,R]
</IfModule>
A outra parte relevante da configuração é a parte do proxy reverso.
<IfModule mod_proxy.c>
RequestHeader set Front-End-Https "On"
SSLProxyEngine on
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1
# Reverse Proxy
ProxyPass /application https://server.internal.lan/application
ProxyPassReverse /application https://server.internal.lan/application
</IfModule>
Alguém pode me dizer como parar de remover esses URLs?
Obrigado
David
A bandeira [NE] na sua regra de reescrita está configurando para Sem Escape. Tente alterá-lo para [B] para escapar de referências anteriores.