LINUX.ORG.RU
решено ФорумAdmin

Nginx добавить слеш

 ,


1

2

Что-то я туплю...

Имеем простейший статический конфиг:

server {
    server_name example.com;
    root /var/www/htdocs;
    index index.html;
}

Мне надо добавить слеш для запросов к индексу.

Т.е. http://example.com (301) -> http://example.com/ (200)

По умолчанию и первый и второй вариант возвращает 200.

И вот тут я в ступоре, т.к. и в первом и втором варианте слеш уже есть в $uri. :/ Как отловить ситуацию без слеша и перенаправить?

★★★★★

Последнее исправление: beastie (всего исправлений: 1)

Ответ на: комментарий от Black_Roland

Дык, точно! Вопроз закрыт. ;)

PS: наш SEO ввёл меня в ступор своими хотелками.

beastie ★★★★★
() автор топика

Если вдруг возникнет более жизненная задача, то решается через «location =»

location =/beastie {
    rewrite ^.* $scheme://$host/beastie/ permanent;
}
router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

Это то да. (Кстати, .* — у тебя лишний.)

Можно ещё и так:

rewrite ^([^.]*[^/])$ $1/ permanent;

А вот с запросами к руту, я откоровенно протупил. ;)

beastie ★★★★★
() автор топика
Ответ на: комментарий от router

Лучше через return. В rewrite у тебя бесполезная регулярка каждый раз тудет парсится.

return 301 $scheme://$host/beastie/

Black_Roland ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.