Я ищу динамическое решение для обработки постоянных ссылок нескольких сайтов (узлов) WordPress, установленных в подкаталогах.
Сайты доступны по таким URL-адресам (я использую cluster
и node
для обозначения структуры, но они различны для каждого случая, но всегда следуют одинаковой структуре, а узлы - это каталоги, содержащие корневые файлы WordPress):
https://www.domain.tld/cluster1/node1/
И что я пытаюсь избежать, так это создать одно правило для каждого узла следующим образом:
location /cluster1/node1/ {
try_files $uri $uri/ /cluster1/node1/index.php$is_args$args;
}
location /cluster2/node2/ {
try_files $uri $uri/ /cluster2/node2/index.php$is_args$args;
}
location /cluster3/node3/ {
try_files $uri $uri/ /cluster3/node3/index.php$is_args$args;
}
location /cluster4/node4/ {
try_files $uri $uri/ /cluster4/node4/index.php$is_args$args;
}
Это работает, но есть более 43 узлов (постоянно меняется). Итак, я попробовал следующее:
location /([^/]+)/([^/]+)/ {
try_files $uri $uri/ /$1/$2/index.php$is_args$args;
}
Показывает домашнюю страницу правильно, но показывает 404 для страниц узлов (как https://www.domain.tld/cluster1/node1/page/) (отображается Nginx, а не WordPress).
location ~ ^/([^/]+)/([^/]+)/ {
try_files $uri $uri/ /$1/$2/index.php$is_args$args;
}
Но это делает PHP-файл загружаемым как файл с именем download
.
location ~ /([^/]+)/([^/]+)/ {
try_files $uri $uri/ /$1/$2/index.php$is_args$args;
}
Так же, как и предыдущий.
location ^~ /([^/]+)/([^/]+)/ {
try_files $uri $uri/ /$1/$2/index.php$is_args$args;
}
Это заставляет домашнюю страницу этого узла загружаться так же, как и в предыдущей попытке, но показывает 404 для страниц узлов (например, https://www.domain.tld/cluster1/node1/page/) (отображается Nginx, а не WordPress).
Любая подсказка, почему ничего из вышеперечисленного не работает? Любое предложение о том, как заставить это работать?
Спасибо всем!