WordPress мультисайт под nginx частично работает - PullRequest
0 голосов
/ 07 февраля 2019

Чтобы установить сцену, приведенный ниже конфиг находится под одним доменным именем, используемым для целей разработки, поэтому у нас уже есть много сайтов WordPress с одним экземпляром, работающих в подкаталогах.

Я сейчас пытаюсь настроитьмультисайтовый экземпляр в своем собственном подкаталоге.

Пример обычного экземпляра WordPress:

URL: http://example.com/path/one
Path: /srv/web/example.com/public/path/one

Пример мультисайтового экземпляра WordPress:

URL: http://example.com/path/two
Path: /srv/web/example.com/public/path/two

Мультисайтовый экземпляр не работает какожидается.

Корневой сайт в http://example.com/path/two работает.

Пути wp-admin без обучения '/' корректно переписываются в wp-admin /, как и ожидалось, для обоихродительский и дочерний сайты.

Единственный «дочерний» сайт с именем «site1» в http://example.com/path/two/site1/wp-admin/ показывает сломанную страницу, и последующие URL-адреса по этому пути возвращают php-fpm «файл не найден».

Я стараюсь избегать использования синтаксиса if (!-e $request_filename ) { ... }, как это делается для многих примеров многосайтовой конфигурации в режиме онлайн.

Что я пропустил в моей конфигурации ниже?Указатели будут оценены.

server {
   listen ...;
   ...
   index index.php;

   location /path/one {
       try_files $uri $uri/ /path/one/index.php?$args;
   }
   location /path/two {
       try_files $uri $uri/ @wordpress_multi;
   }
   location @wordpress_multi {
       rewrite wp-admin$ $request_uri/ permanent;
       rewrite ^/path/two/([^/]+/)?(wp-.*) /path/two/$2 last;
       rewrite ^/path/two/([^/]+/)?(.*\.php)$ /path/two/$2 last;
       rewrite ^/(.*)$ /path/two/index.php?$args;
   }
   location ~ \.php$ {
       ...
   }
}
...