nginx子目录通配符重写

我已经在我的nginx服务器上build立了一个服务器模块,例如域testsite.com 。 我希望能够将独立的WordPress安装安装到根文件夹的直接子文件夹中,例如/var/www/html/testsite.com/ childfolder1 ,/var/ www / html / testsite.com / childfolder2等,所以他们可以通过testsite.com/ childfolder1 ,testsite.com/ childfolder2访问

手动创buildredirect的方法是像这样插入它:

location /childfolder1 { index index.php; try_files $uri $uri/ /childfolder1/index.php?$args; } 

并重复每个网站来。 使用location /只覆盖根目录。 有没有办法创build一个(正则expression式?)通配符规则,说:“对于每个直接子目录,应用这个try_files命令”(这显然总是相同的WordPress,只是文件夹名称更改)?

 location /*anydirectsubdirectory* { index index.php; try_files $uri $uri/ /*anydirectsubdirectory*/index.php?$args; } 

我不能certificate你想要做什么工作,但是下面是你的“伪代码”到实际的nginxconfiguration的转换(假如同样的复制粘贴解决scheme为你工作,这也应该继续工作)。

 location ~ /(?<anydirectsubdirectory>[^/]+) { index index.php; try_files $uri $uri/ /$anydirectsubdirectory/index.php?$args; } 

试试这个〜

server { listen 80; server_name example.com; charset utf-8; access_log logs/xxxxxx.access.log;

 root /var/www/html; index index.php; location = / { return 301 /cn/; } location / { try_files $uri $uri/ /cn/index.php?q=$uri; } location /en { try_files $uri $uri/ /en/index.php?q=$uri; } location /my { try_files $uri $uri/ /my/index.php?q=$uri; } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } 

}