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


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

我使用neginx,然后我需要将htaccess重写规则转换为neginx重写规则。我用它来转换。现在我想知道我应该如何使用输出?

. htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rt=$1 [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=$1 last;
}

如何使用输出?

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

在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=$1 last;
    }
}