Wordpress NGINX Plesk 重写规则 + 为特定文件夹重写

Wordpress NGINX Plesk rewrite rules + rewrite for a specific folder

我是 运行 带有 wordpress 站点的 Plesk 服务器。该站点使用 Apache 作为网络服务器并使用 Nginx 作为代理运行良好。我想从 Apache 处理的 PHP-FPM 切换到 Nginx 处理的 PHP-FPM,这样 Nginx 将成为该站点的 Web 服务器。

我进行了切换并添加了这条规则:

if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php break;
}

WordPress 运行 很好。还有一个名为 serp 的文件夹,其中包含此 .htaccess 文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ .php [NC,L]

我需要将这些规则转换为 nginx 重写规则,以便 wordpress 和该文件夹中的脚本都能正常工作

基本上不起作用的 URL 是这样的:

https://mydomain.tld/serp/2?keyword=tyres&type=test-valerio&source=test-source

而实际的 url 是这样的:

https://mydomain.tld/serp/2.php?keyword=tyres&type=test-valerio&source=test-source

到目前为止我测试过的内容:

location /serp {
  if (!-e $request_filename){
    rewrite ^(.*)$ /.php break;
  }
}

所以基本上我需要重写,而不是在 url 中使用 2.php? 来使用 2?

我无法使重写规则生效。非常感谢任何帮助!

最后我想出了:

    location /serp {
            try_files $uri $uri/ @extensionless-php;
    }

    location /article {
            try_files $uri $uri/ @extensionless-php;
    }

    location @extensionless-php {
            rewrite ^(.*)$ .php last;
    }