[英]nginx proxy_pass do not pass uri
我的目标是,对domain.com/do/that/
的调用将包含页面otherdomain.com/for/that/
并用ssi&subs过滤器替换该内容的一部分。 同样,重要的是,如果有人致电domain.com/do/that/for-me
,包含的页面将只请求otherdomain.com/for/that
而不是 otherdomain.com/for/that/for-me
。
我目前已经设置了:
location ^~/do/that/ {
proxy_pass http://otherdomain.com/do/that/;
ssi on;
subs_filter_types text/html;
set $includeUri "";
if ( $uri != "/do/that/" ){
set $includeUri "$uri-parts";
}
subs_filter '<div class="rpl-container">' '<div class="rpl-container"><!--# include virtual="/my-ssi-include/$includeUri" -->' ir;
}
实现uri的“忽略”的方式是什么?
已经找到解决方案:
我只是将var与静态网址一起使用并将其设置为proxy_pass
location ^~/do/that/ {
set $staticUrl 'http://otherdomain.com/do/that/';
proxy_pass $staticUrl;
ssi on;
subs_filter_types text/html;
if ($uri ~* "/do/that/(.*\.html)"){
set $includeUri "$1";
}
subs_filter '<div class="rpl-container">' '<div class="rpl-container"><!--# include virtual="/my-ssi-include/$includeUri" -->' ir;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.