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;
}
我是 运行 带有 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;
}