如果我转到网站https://example.com/media/https://google.com/imageurl 我希望该URL在/ media之后打开网站。
所以我想打开https://google.com/imageurl,但不想完全重定向。
它必须留在我的域内,能正常工作吗?
我尝试了类似的方法,但是不起作用:/
rewrite ^/media/(.*).(png|jpg|gif) $1.$2 ;
那么/ media /之后的所有内容都会在我自己的域中显示,这是可行的吗?
答案 0 :(得分:0)
您要执行的操作称为“透明代理”。您无法通过简单的重写来做到这一点。您可以尝试以下方法:
location ~ ^/media/(?<proto>https?:)/+(?<domain>[^/]+)(?<subreq>/.+\.(?:png|jpg|gif))$ {
proxy_ssl_server_name on;
proxy_set_header Host $domain;
proxy_pass $proto//$domain$subreq;
}
或者这个:
location ~ ^/media/(?<proto>https?:)/+(?<domain>[^/]+)(?<subreq>/.+\.(?:png|jpg|gif))$ {
proxy_ssl_server_name on;
proxy_set_header Host $domain;
rewrite .* $subreq break;
proxy_pass $proto//$domain;
}
您还需要在配置中使用resolver
指令来使用它。