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