Decode a cadeia de consultas de URL usando Mod Rewrite / Regex

1

Eu tenho o seguinte URL codificado

https://example.com/external-image?url=http%3A%2F%2Fwww.thirdpartydomain.com%2FTWM%2FImages%2F1264%2F143242%2FFull%2F2201625016119496.jpg

Eu estou usando mod rewrite para analisar a string de consulta e, em seguida, proxy a url. A razão pela qual estou fazendo isso é tornar seguras as imagens compartilhadas de outros sites de terceiros usando meu próprio SSL.

O código a seguir contém parâmetros de consulta não codificados que funcionam perfeitamente.

URL de exemplo

https://example.com/external-image?url=http://www.thirdpartydomain.com/TWM/Images/1264/143242/Full/2201625016119496.jpg

Exemplo de código

  RewriteCond %{QUERY_STRING} url=((?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+).*) [NC]
  RewriteRule ^.*/external-image$ %1 [P,NC,L,E=new_host:%2]

  <If "-T reqenv('new_host')">
    RequestHeader set Host %{new_host}e
  </If>

Meu objetivo é codificar meus parâmetros de consulta no navegador, formando um URL válido e decodificar o parâmetro de consulta antes de fazer o proxy do URL. Alguém tem alguma opinião sobre a melhor maneira de lidar com isso?

    
por George 11.09.2016 / 05:49

0 respostas