nginx переписывает последнюю косую черту без косой черты

#nginx

#nginx

Вопрос:

У меня проблема, и я не знаю, как ее исправить.

Я каждую косую черту в конце перенаправляю без косой черты. Поэтому он должен удалить последнюю косую черту URL.

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

Это работает, но только для обычного URL.

Если у меня есть такие параметры, ?page=2/ они не перезаписываются ?page=2 .

Как я могу это исправить? Мой код работает только без параметров и здесь мне не помогает. Я также уже осмотрелся, но ничего другого не нашел.

Комментарии:

1. Почему это должно работать? rewrite Директива работает с нормализованными URL-адресами, в то время как вы, похоже, хотите переписать параметры. Обратите внимание, как в вашем примере есть параметр page со значением 2/ .

2. Да, но когда я перехожу на ?page= 2, я не нахожусь на 2 / , но если я перехожу на ?page= 2/, я также остаюсь на 2 / . Таким образом, никто не перенаправляется, и у меня есть повторяющиеся сайты, поэтому я перенаправлю всех без косой черты в конце

3. Разные параметры URL-адреса создают разные URL-адреса, верно. Но любой может указать неограниченное количество параметров URL. Например. /?page=2amp;blah=123 . Что заставляет вас беспокоиться о косых чертах в параметрах URL? Практически бессмысленно пытаться перенаправлять на основе косых черт в их значениях.