try_files 用于多个 grav 安装的指令
try_files directive for multiple grav installations
一开始我把grav安装到nginx服务器的子目录下,运行正常:cadoankitovua.com/blog
配置文件:
server {
listen 80;
server_name cadoankitovua.com www.cadoankitovua.com *.cadoankitovua.com;
root /home/grav/web/public/;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /blog/index.php?_url=$uri&$query_string;
}
location ~ \.php$ {
include /opt/local/etc/nginx/fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
然后,我将 grav 的相同副本安装到 /text 目录,并尝试以我所知道的许多不同方式修改 conf 文件。 None 有效。
我有两个问题:
我如何编辑 conf 文件以使 grav 在 /blog 和 /text 目录上工作?
一般来说,如果我将 grav 安装在许多子目录中,如何让许多 (>2) 个安装工作?
提前致谢。
我对重力一无所知,但你可以从添加一个 location /text
块开始:
server {
listen 80;
server_name cadoankitovua.com www.cadoankitovua.com *.cadoankitovua.com;
root /home/grav/web/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /blog/index.php?_url=$uri&$query_string;
}
location /text {
try_files $uri $uri/ /text/index.php?_url=$uri&$query_string;
}
location ~ \.php$ {
include /opt/local/etc/nginx/fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
编辑:一般解决方案将使用带有重写语句的命名位置,例如:
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^(/[^/]+) /index.php?_url=$uri&$query_string last;
rewrite ^ /blog/index.php?_url=$uri&$query_string last;
}
一开始我把grav安装到nginx服务器的子目录下,运行正常:cadoankitovua.com/blog
配置文件:
server {
listen 80;
server_name cadoankitovua.com www.cadoankitovua.com *.cadoankitovua.com;
root /home/grav/web/public/;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /blog/index.php?_url=$uri&$query_string;
}
location ~ \.php$ {
include /opt/local/etc/nginx/fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
然后,我将 grav 的相同副本安装到 /text 目录,并尝试以我所知道的许多不同方式修改 conf 文件。 None 有效。
我有两个问题:
我如何编辑 conf 文件以使 grav 在 /blog 和 /text 目录上工作?
一般来说,如果我将 grav 安装在许多子目录中,如何让许多 (>2) 个安装工作?
提前致谢。
我对重力一无所知,但你可以从添加一个 location /text
块开始:
server {
listen 80;
server_name cadoankitovua.com www.cadoankitovua.com *.cadoankitovua.com;
root /home/grav/web/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /blog/index.php?_url=$uri&$query_string;
}
location /text {
try_files $uri $uri/ /text/index.php?_url=$uri&$query_string;
}
location ~ \.php$ {
include /opt/local/etc/nginx/fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
编辑:一般解决方案将使用带有重写语句的命名位置,例如:
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^(/[^/]+) /index.php?_url=$uri&$query_string last;
rewrite ^ /blog/index.php?_url=$uri&$query_string last;
}