要设置场景,以下配置位于单个域名下,用于开发目的,因此我们已经在子目录下运行了许多单实例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/。
http://example.com/path/two/site1/wp-admin/上唯一一个名为“ site1”的“子”站点显示了一个损坏的页面,该路径下的后续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$ {
...
}
}