我有以下编码的 URL
https://example.com/external-image?url=http%3A%2F%2Fwww.thirdpartydomain.com%2FTWM%2FImages%2F1264%2F143242%2FFull%2F2201625016119496.jpg
我使用 mod rewrite 来解析查询字符串,然后代理 URL。我这样做的原因是使用我自己的 SSL 来确保来自其他第三方网站的非安全共享图像的安全。
以下代码包含可以完美运行的非编码查询参数。
示例 URL
https://example.com/external-image?url=http://www.thirdpartydomain.com/TWM/Images/1264/143242/Full/2201625016119496.jpg
示例代码
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>
我的目标是在浏览器中对查询参数进行编码以形成有效的 URL,然后在代理 URL 之前对查询参数进行解码。有人知道处理这个问题的最佳方法吗?