Простое перенаправление продуктов Nginx из старой в новую категорию

Я перенаправляю товары из старой в новую категорию.

Мне удалось заставить его работать со следующим правилом:

rewrite ^/old-category/(.*) /new-category/$1;

Но я хочу знать, когда мне следует использовать знак "конечной строки" $ и какая разница с ним или без него в моем случае. Например:

rewrite ^/old-category/(.*)$ /new-category/$1;

Также я хочу перенаправить пользователей, если они просто напишут старое название категории (без товаров), следует ли мне создать новое правило только для перенаправления категории, или я могу отредактировать текущее правило выше, чтобы оно работало в обоих случаях.

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

9
задан 8 October 2018 в 12:45
1 ответ

Отвечая на ваши вопросы по порядку ...

Это

rewrite ^/old-category/(.*) /new-category/$1;

и это

rewrite ^/old-category/(.*)$ /new-category/$1;

, как написано , эквивалентны. Правило . * соответствует 0 или более из «всего», поэтому $ является избыточным / не совсем необходимым.

Терминатор $ полезен, когда вы хотите сопоставить строки, которые заканчиваются определенным образом , например

rewrite ^/old-category/(.*)\.php$ /new-category/$1;

, чтобы перезаписать только файлы PHP .

Что касается вашего второго вопроса, если я правильно понял, вы хотите перенаправить этот

http://example.com/old-category/

на этот

http://example.com/new-category/

. Если это так, это уже сделано правилом rewrite , так как . * соответствует ZERO или более символов .

9
ответ дан 2 December 2019 в 22:32

Теги

Похожие вопросы