Назад | Перейти на главную страницу

Удаление завершающих слэшей с определенных URL-адресов в nginx

Недавно я перевел свой блог с WordPress на Jekyll (мне нравится идея статических файлов для моего блога). Я использую Nginx (раньше использовал его с PHP-FPM), и у меня все настроено для обработки. Я столкнулся с одной проблемой, которую не знаю, как исправить.

Я использую структуру URL:

/atthekeyboard/YYYY/MM/DD/title-of-post 

У меня есть сообщения в блоге за 5 лет, которые были проиндексированы Google, и они

/attheykeyboard/YYYY/MM/DD/title-of-post/

Я хочу переписать все старые вызовы с косой чертой в конце, чтобы использовать URL без косой черты, пока Google не проиндексирует все новые вещи.

Вот конфигурация nginx, которая у меня уже есть:

    location /atthekeyboard {
            index index.html;
            try_files $uri.html $uri/ /notfound.html;
    }

Я использую try_files, потому что сообщения фактически сохраняются как title-of-post.html, а мне не нужна часть .html.

Заранее благодарим за советы и решения!

Что-то вроде этого должно удалить завершающую косую черту, а затем позволить Nginx повторно проанализировать блоки местоположения.

location ~ ^(/atthekeyboard/.+)/$ {
    set $noslash $1;
    rewrite ^ $noslash permanent;
}

думаю HTTPRewriteModule это то, что вы ищете