как создать перезапись nginx для добавления / в URL

#nginx #nginx-location

#nginx #nginx-расположение

Вопрос:

Я пытаюсь создать перезапись nginx, которая перепишет /pagename в /pagename/

Я пробовал использовать:

 location ~ "^/test$" {
    rewrite /test /test/ break;
}
  

но, похоже, это не работает…

любая помощь будет оценена.

Ответ №1:

Первым параметром rewrite инструкции является регулярное выражение, и флаг, который вы должны использовать, вероятно permanent (подробности см. В Этом документе), например:

 location ~ "^/test$" {
    rewrite ^(/test)$ $1/ permanent;
}
  

Но вам не нужно сопоставлять регулярное выражение дважды, один раз в location и снова в rewrite , поэтому a return было бы более эффективным, например:

 location ~ "^(/test)$" {
    return 301 $1/$is_args$args;
}
  

Кроме того, location совпадение с одним URI для = оператора было бы лучше, чем регулярное выражение (подробности см. В Этом документе). Итак, предпочтительным решением является:

 location = /test {
    return 301 $uri/$is_args$args;
}
  

Ответ №2:

В итоге я использовал return:

 return 301 /test/;