Я пытаюсь перенаправить страницу на основе переданных параметров.
Я хочу перенаправить
перезаписать ^ / join_trial в / test? постоянный;
и
перезаписать ^ / join_trial? Discount = free (. *) / test2? постоянный;
Первый работает, а второй нет. Похоже, что nginx не принимает регулярное выражение (. *).
Для первого работают следующие случаи.
/ join_trial? test = aaaaa
/ join_trial? 923849 = ааа
В принципе, после / join_trial.
Я хочу иметь перенаправление, когда пользователь добавляет ? скидка = бесплатно(здесь все идет).
Возможно ли это с nginx?
Вы не можете сопоставить строку запроса в rewrite
. Поэтому вам нужно напрямую проверить аргумент.
Например:
if ($arg_discount ~ ^free) {
rewrite ^/join_trial /test2? permanent;
}
rewrite ^/join_trial /test? permanent;
И я подозреваю, что ты действительно не хотите отправлять 301 редирект, как тогда увидит пользователь /test
или /test2
прямо в адресной строке. Возможно, вы действительно хотите обрабатывать эти URL-адреса только внутренне? В таком случае измените permanent
к last
.