我想在我当前网站的文件夹中设置一个 wordpress 网站。我有一个主应用程序正在运行,但我想将所有以 开头的请求路由/folder
到该 wordpress 网站,该网站位于服务器上的另一个文件夹中。
我已经为 nginx 配置烦恼好几天了。
我还有 2 个子域名,每个子域名都有自己的服务器块,但我没有在这里发布,因为我认为它们不相关(但如果有其他情况,请告诉我)
这是我的简化的 nginx 配置:
server {
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location /folder/ {
try_files $uri $uri/ /folder/index.php?$args;
location ~ \.php$ {
fastcgi_split_path_info ^(/folder)(/.*)$;
}
}
}
现在,当我浏览该文件夹时,它正在下载文件/folder/index.php
。
附带问题:
- 是否有在线资源可以调试 nginx 配置
- 我们是否可以在 nginx 配置中添加“日志”语句来帮助理解触发了哪些块
答案1
我终于找到了解决方案。在此发布它将有助于将来的某人:
location ^~ /folder {
alias /home/user/folder;
index index.php;
if (!-e $request_filename) { rewrite ^ /folder/index.php last; }
location ~ \.php$ {
if (!-f $request_filename) { return 404; }
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+?\.php)(/.+)?$;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}