将 apache mod 重写规则转换为 nginx

将 apache mod 重写规则转换为 nginx

我在将 apache mod 重写规则转换为 nginx 时遇到问题

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ backend/index.php?a=$1 [L,QSA]

我尝试了这些规则,但没有效果:

location / {
   if (!-e $request_filename){
      rewrite ^(.*)$ /backend/index.php?a=$1 break;
   }
}

答案1

它不起作用,因为你有breakBreak意味着“重写文件名并终止在当前位置的搜索”。但当前位置对 PHP 处理一无所知(正如您从配置文件片段中看到的那样)。

您需要删除break并获取 PHP 文件的正则表达式位置以及fastcgi_*指令。

相关内容