图片的原始 url
/?page=logo&xxxxxx
比如替换成
https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
在 Nginx 反向代理配置中,可以使用 sub_filter
指令来替换图片的地址。具体的配置语句如下:
location / {
proxy_pass http://backend;
sub_filter '/?page=logo&' '/';
sub_filter_types *;
sub_filter_once off;
}
解释:
sub_filter '/?page=logo&' '/'
:表示将原始 url 中的/?page=logo&
替换为/
。sub_filter_types *
:表示对任意类型的响应都进行替换,包括 HTML、JS、CSS 等文本和二进制文件。sub_filter_once off
:表示在一次响应中进行多次替换。
如果图片本身的格式需要进行替换,可以在 sub_filter
指令中使用正则表达式。例如:
location / {
proxy_pass http://backend;
sub_filter '/?page=logo&' '/';
sub_filter_types *;
sub_filter_once off;
sub_filter 'img/PCtm_[0-9a-f]+\\.png' 'img/new_logo.png';
}
其中,正则表达式 'img/PCtm_[0-9a-f]+\\.png'
匹配原始 url 中的图片地址,'img/new_logo.png'
则是替换后的地址。这样在反向代理的响应中,原始页面中的图片地址会被替换为新的地址。