como faço para manter um URL com máscara em uma sessão de proxy?

1

Eu tenho uma regra de proxypass em vigor para a página de suporte do meu site (www.company.com/support) redirecionar para um site hospedado por terceiros (company.custhelp.com) ... mas o próprio link do site está ativado o domínio separado. Existe uma maneira de manter a sessão de proxy para que os links clicados na sessão também passem pelo proxy e mantenham a URL "correta" que desejo que os usuários vejam?

    
por 580farm 20.12.2012 / 21:58

1 resposta

0

Para mascarar o domínio, você usaria as regras abaixo.

ProxyPass /support http://company.custhelp.com
ProxyPassReverse /support http://company.custhelp.com

Todos os links de URI no site remoto precisariam ser relativos, de modo que, quando clicados, permanecessem inerentemente relativos ao seu domínio. Por exemplo:

<a href="faq.html">

vs.

<a href="http://company.custhelp.com/faq.html">

Se por algum motivo você não tiver controle sobre o conteúdo do site remoto (não vejo por que não o faria), não há módulo do Apache que analise páginas. Você precisaria criar um script que atenda a essas solicitações do seu servidor. O script atuaria como o proxy: buscando as páginas do site remoto, analisando o conteúdo e reescrevendo o HTML (URIs) antes de retorná-lo ao usuário final.

Existem alguns desafios que surgem ao criar esse tipo de script. Um casal que vem à mente são imagens e arquivos css. Você precisará decidir se vai lidar com a veiculação das imagens em seu site ou criar o script de modo que ele não substitua os URLs de imagem. Se as referências de imagem forem relativas, você precisará veiculá-las ou criar o script de forma que ele reconfigure esses caminhos relativos com o domínio de origem remoto. Você terá problema semelhante com arquivos css. Outra é a regra "HTTP_REFERER". Embora seja raro, se o site remoto tiver alguma regra "HTTP_REFERER", esses itens não funcionarão.

Certamente não é impossível, mas você precisará explicar muitas possibilidades.

    
por 21.12.2012 / 04:34