使用 Mod Rewrite / Regex 解码 URL 查询字符串

使用 Mod Rewrite / Regex 解码 URL 查询字符串

我有以下编码的 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 之前对查询参数进行解码。有人知道处理这个问题的最佳方法吗?

相关内容