文件夹中的 wordpress 站点的 Nginx 配置

文件夹中的 wordpress 站点的 Nginx 配置

我想在我当前网站的文件夹中设置一个 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;
        }
    }

相关内容