nginx - 在自己的域上重写和“托管”网址
问题描述
如果我去网站https://example.com/media/https://google.com/imageurl 我希望 url 在 /media 之后打开网站。
所以我想打开https://google.com/imageurl但不是完整的重定向。
它必须留在我的域上,这有效吗?
我尝试了类似的方法,但没有工作:/
rewrite ^/media/(.*).(png|jpg|gif) $1.$2 ;
所以 /media/ 之后的所有内容都将在我自己的域上显示,是否有效?
解决方案
您想要做的是调用“透明代理”。你不能通过简单的重写来做到这一点。你可以试试这个:
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
在配置中使用指令来使用它。
推荐阅读
- r - 计算函数输出的均值和方差
- amazon-web-services - ECS Fargate foverver 在“IN_PROGRESS”中具有“rolloutState”,AWS 控制台上没有停止任务
- go - 持有已解析令牌的变量(令牌)返回 nil
- html - 如何覆盖 Boostrap 的导航栏内联搜索栏宽度?
- python - 为什么消除零项()不删除零条目?
- java - 如何在没有 Web 界面的情况下部署和运行 EAR java 程序?
- javascript - 当我单击它时,反应角色没有给我角色,我没有收到任何错误
- excel - 当特定列上没有特定文本时如何在excel中突出显示行
- c# - HttpClient向api发送空值,而不是查看json对象
- python - 带条件的 Python Groupby