繁体   English   中英

nginx proxy_pass不通过uri

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM