我使用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;
}
}