从子目录将 nginx 配置到 运行 wordpress 时出现问题,但在 url 中没有子目录名称

Problem configuring nginx to run wordpress from subdirectory but without subdirectory name in url

我是 nginx 的新手。 我有两种类型的代码,一种是简单的 php 运行 到 index2.php,我有一个名为 wordpress 的目录,里面有一个完整的 wordpress 网站。

我想要实现的是让它们都在主域上 运行 没有带有子目录名称的斜杠。

location ~ (/lottery-results|patternTwo) {
    try_files $uri /index2.php$is_args$args;
}
location / {
    try_files $uri /wordpress/index.php?$args;
}

这是我目前使用的配置,它可以很好地满足我的目的。 第一个指令通过 index2.php 中的简单 php 加载一些 url。 第二个指令加载 wordpress,但是当我打开这个 url:

http://domain.test/

它将我发送至:

http://domain.test/wordpress/wp-admin/setup-config.php

我的问题是 /wordpress 部分我希望 url 是:

http://domain.test/wp-admin/setup-config.php

相反。

我尝试使用 alias 和 root,但它没有改变任何东西,(老实说,我什至不明白 alias 和 root 的作用!)

编辑:PHP-FPM 处理程序:

        location ~ \.php$ {
            try_files        $uri =404;
            fastcgi_pass     unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
            fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include          /Applications/MAMP/conf/nginx/fastcgi_params;
        }

让我们试试这个:

# This block should be OUTSIDE the server block!
map $request_uri $new_uri {
    ~^/wordpress(/.*)  ;
    default            $request_uri;
}

server {
    ...
    location ~ (/lottery-results|patternTwo) {
        try_files $uri /index2.php$is_args$args;
    }
    location / {
        try_files $uri /wordpress$uri /wordpress/index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;

        # Here the order of directives DOES matter
        # This should be the first:
        include /Applications/MAMP/conf/nginx/fastcgi_params;
        # This should be the second:
        fastcgi_param REQUEST_URI $new_uri;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpLocalhost_MAMP.sock;
    }
}