我应该如何使用 htaccess 重写规则转换为 nginx 重写规则的输出

how should I use output of conversion of htaccess rewrite rules to nginx rewrite rules

我用的是neginx,那么我需要将htaccess重写规则转换成neginx重写规则。我使用 this 进行转换。现在我想知道我应该如何使用输出?

.htaccess:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?rt= [L,QSA]

ErrorDocument 404 /error404.html

nginx 规则: (输出)

if (!-f $request_filename){
    set $rule_0 1$rule_0;
}
if (!-d $request_filename){
    set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
    rewrite ^/(.*)$ /index.php?rt= last;
}

我应该如何使用输出?

应该注意的是,我在不同的文件夹中有多个 .htaccess (在 3 个不同的文件夹中有 3 个 .htaccess 文件)

在nginx 中,没有htaccess 文件这样的东西。您所有的 nginx 规则都需要直接进入 nginx 配置文件。

参见:http://nginx.org/en/docs/beginners_guide.html#conf_structure

由于您的 htaccess 文件位于不同的文件夹中,您需要做的是将规则包装在 location 块中。

例如,如果您发布的规则是从 "blogs" 文件夹中的 htaccess 文件翻译过来的,您可以这样做:

location /blogs/ {

    if (!-f $request_filename){
        set $rule_0 1$rule_0;
    }
    if (!-d $request_filename){
        set $rule_0 2$rule_0;
    }
    if ($rule_0 = "21"){
        rewrite ^/(.*)$ /index.php?rt= last;
    }

}