如何创建 nginx 重写以添加 / 到 url
how to create an nginx rewrite to add / to url
我正在尝试创建一个 nginx 重写,将 /pagename 重写为 /pagename/
我试过使用:
location ~ "^/test$" {
rewrite /test /test/ break;
}
但这似乎行不通...
如有任何帮助,我们将不胜感激。
我最终使用了 return:
return 301 /test/;
rewrite
语句的第一个参数是一个正则表达式,你应该使用的标志可能是permanent
(详见this document),例如:
location ~ "^/test$" {
rewrite ^(/test)$ / permanent;
}
但是您不需要匹配正则表达式两次,一次在 location
中,一次在 rewrite
中,因此 return
会更有效率,例如:
location ~ "^(/test)$" {
return 301 /$is_args$args;
}
此外,location
匹配单个 URI,=
运算符比正则表达式更好(有关详细信息,请参阅 this document)。所以首选方案是:
location = /test {
return 301 $uri/$is_args$args;
}
我正在尝试创建一个 nginx 重写,将 /pagename 重写为 /pagename/
我试过使用:
location ~ "^/test$" {
rewrite /test /test/ break;
}
但这似乎行不通...
如有任何帮助,我们将不胜感激。
我最终使用了 return:
return 301 /test/;
rewrite
语句的第一个参数是一个正则表达式,你应该使用的标志可能是permanent
(详见this document),例如:
location ~ "^/test$" {
rewrite ^(/test)$ / permanent;
}
但是您不需要匹配正则表达式两次,一次在 location
中,一次在 rewrite
中,因此 return
会更有效率,例如:
location ~ "^(/test)$" {
return 301 /$is_args$args;
}
此外,location
匹配单个 URI,=
运算符比正则表达式更好(有关详细信息,请参阅 this document)。所以首选方案是:
location = /test {
return 301 $uri/$is_args$args;
}