Я перенаправляю товары из старой в новую категорию.
Мне удалось заставить его работать со следующим правилом:
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
правило, как .*
Спички НУЛЬ или более символов.