如何创建 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;
}