NGINX с 2 условиями, которые нужно переписать - PullRequest
0 голосов
/ 15 апреля 2019

у меня 2 разных сайта www.example1.com www.example2.com

у каждого из них есть папка, например https://www.example1.com/store/test/en/test/ANYCATEGORY/ANDCATEGORY/OPTIONALCATEGORY/PROGRAMNAME/p/100002020 https://www.example2.com/store/test/en/test/ANYCATEGORY/ANDCATEGORY/OPTIONALCATEGORY/PROGRAMNAME/p/100002020

Идея состоит в том, чтобы применить правило nginx, которое соответствует 2 условиям: host и uri, если в конце нет .html

Это то, что у меня есть для добавления .html, если в настоящее время нет .html

  location ~ ^(?=.*\/p\/)(?!.*\.html$).+$ {
  try_files $uri $uri/ @rewrite;
  }
  location @rewrite {
  rewrite ^(.+)$ $1.html permanent;
  }

Я хочу применить вышеуказанное условие только к www.example2.com, а НЕ к www.example1.com

как это возможно? Я пробовал несколько вещей, но местоположение, кажется, имеет дело только с URI, а не с $ host / $ uri?

Я пробовал ниже:

  location ~ ^https://(?![example1])(?=.*\/p\/)(?!.*\.html$).+$ 

но это не работает.

Тоже попробовал без удачи

  set $tmp '';
  if ($http_origin ~ "^https?://(?!(oasis-)).*") {
   set $tmp 1;
  }
  if ($request_uri ~ ^(?=.*\/p\/)(?!.*\.html$).+$) {
   set $tmp "${tmp}1";
  }
  if ($tmp = 11) {
   rewrite ^(.+)$ $1.html permanent;
  }

...