带nginx的Wordpress多站点。匹配位置内的子目录
问题描述:
我有多个WordPress网站在子目录中运行。带nginx的Wordpress多站点。匹配位置内的子目录
一切正常,但我正在寻找简化我的nginx配置。
目前,当我添加一个位置时,我需要为指定的目录添加一个条目到我的服务器配置。
location/{
try_files $uri $uri/ /index.php?q=$args;
}
location /site1 {
try_files $uri $uri/ /site1/index.php?q=$args;
}
location /site2 {
try_files $uri $uri/ /site2/index.php?q=$args;
}
location /site2 {
try_files $uri $uri/ /site3/index.php?q=$args;
}
location /site4 {
try_files $uri $uri/ /site4/index.php?q=$args;
}
我试着添加一个正则表达式来匹配子目录,但似乎有一个问题。
location /([_-0-9a-zA-Z]/?) {
try_files $uri $uri/ /$1index.php?q=$args;
}
似乎没有办法。理论上应该匹配一个子目录,或者什么都不匹配,并且能够让我添加新的目录而不必触摸nginx配置。
任何指针,将不胜感激。
@jedifans指出,如何让正则表达式的工作
感谢。这在任何页面上都有窍门,但是当我去/它只是试图下载index.php。
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_pass php70;
fastcgi_keep_conn on;
}
location ~ ^/([_\-0-9a-zA-Z]*/?) {
try_files /$1$uri /$1$uri/ /$1index.php?q=$args;
}
但是,当我去domain.com/site1/我得到的index.php不是主页的下载。少了什么东西?
答
我认为你从你的新位置块中缺少以下内容,这个〜运算符对nginx表示它是一个正则表达式。尝试:
location ~ ^/([_-0-9a-zA-Z]*/?) {
几个正则表达式的调整也^说它必须以/和*内匹配的字符超过一个[和]
编辑:你的问题更新后,尝试以下try_files指令:
try_files $uri $uri/ /$1/index.php?q=$args;
$ URI应该不匹配的字符串工作前置,我已经加了/在匹配查询和index.php文件之间;
此外请确保index index.php;
在server{}
级别。
+0
谢谢。这在任何页面上都有窍门,但是当我去/它只是试图下载index.php。我已经更新了这个问题。 –
我已经更新了我的答案。 – jedifans