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

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

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

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

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

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

rewrite ^/old-category/(.*)$ /new-category/$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 правило, как .* Спички НУЛЬ или более символов.