nginx proxy_pass не пропускает URI - PullRequest
0 голосов
/ 14 января 2019

Моя цель состоит в том, чтобы вызов 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;
}

Каким был бы способ добиться этого "игнорирования" ури?

1 Ответ

0 голосов
/ 14 января 2019

Уже выяснили решение:

Я просто использую переменную со статическим URL-адресом и устанавливаю ее в 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;
}
...