我应该如何使用 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;
}
}
我用的是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;
}
}