Welcome! Log In Create A New Profile

Advanced

нормализация uri

Gena Makhomed
August 14, 2020 07:38AM
Здравствуйте, All!

Есть такая конфигурация:

client <=> nginx-frontend <=> nginx-backend <=> php-fpm

Есть задача от SEO'шников/клиентов сделать так, чтобы несколько слешей,
идущих подряд в uri, превращались в один слеш с помощью 301 редиректа,
и чтобы точка в конце домена также убиралась с помощью 301 редиректа.

Сейчас эту задачу можно решить только на стороне nginx-frontend
с помощью такого программирования на конфигах nginx для каждого
виртуального сервера:

# remove multiple sequences of forward slashes
# The $uri variable with have duplicate slashes removed by default
via [merge_slashes on] - just need to rewrite back to $uri
# note: use of the "^[^?]*?" pattern avoids any matches in the
querystring section of URI - which would cause an infinite redirect loop
if ($request_uri ~ "^[^?]*?//") {
rewrite "^" $scheme://$host$uri permanent;
}

if ($http_host ~ "\.$") {
rewrite "^" $scheme://$host$uri permanent;
}

Хотелось бы избежать программирования на конфигах nginx-frontend
и перенести всю логику нормализации урлов на сторону php-fpm,
если это вообще теоретически возможно без дополнительного
программирования и дополнительного оверхеда на стороне nginx-frontend,
или обойтись всего одной директивой в конфиге на уровне http {},
например, merge_slashes redirect; или normalize_uri on;

На одном физическом сервере несколько сотен виртуальных хостов,
программирование на конфигах nginx делает конфиги трудночитаемыми,
и есть стойкое ощущение, что это не самый оптимальный solution.

Насколько высока вероятность того, что патч, реализующий
дополнительную функциональность merge_slashes redirect;
или normalize_uri on; будет принят в основную ветку nginx?

Какой есть самый правильный и самый оптимальный с точки зрения
экономии человеческих и машинных ресурсов способ решения этой задачи?

--
Best regards,
Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

нормализация uri

Gena Makhomed August 14, 2020 07:38AM

Re: нормализация uri

Maxim Dounin August 14, 2020 10:28AM

Re: нормализация uri

Gena Makhomed August 17, 2020 03:56AM

Re: нормализация uri

Maxim Dounin August 17, 2020 11:00AM

Re: нормализация uri

Gena Makhomed August 18, 2020 04:18AM

Re: нормализация uri

Илья Шипицин August 18, 2020 04:46AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 82
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready