#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/;