NGNIX Redirect с двумя параметрами

. Итак, на данный момент это работает для меня:

if ($request_uri = "/web/news.php?id=69") {
    rewrite ^ https://www.camper-center.ch/? last;
}

Но теперь у меня также есть URL-адреса, такие как /web/listing.php ?monat = 02 & jahr = 2020 с двумя параметрами вместо одного, как указано выше.

if ($request_uri = "/web/listing.php?monat=02&jahr=2020") {
    rewrite ^ https://www.camper-center.ch/news/aktuell.html?month=02&year=2020? last;
}

похоже, это не работает. Есть ли у вас какие-нибудь предложения?

Поскольку он перенаправил меня на сайт с немецкими параметрами, я перенаправил их, и в итоге у меня все получилось так:

if ($request_uri = "/news/aktuell.html?monat=02&jahr=2020") {
    rewrite ^ https://www.camper-center.ch/news/aktuell.html?month=02&year=2020? last;
}
0
задан 11 December 2020 в 15:57
2 ответа

Попробуйте:

if ($args ~* "/web/listing.php?monat=02&jahr=2020") {
    rewrite ^ https://www.camper-center.ch/news/aktuell.html?month=$arg_monat&year=$arg_jahr? last;
}

https://nginx.org/en/docs/http/ngx_http_core_module.html#variables

Просто адаптируйтесь к своим потребностям.

0
ответ дан 4 January 2021 в 09:52

Вы можете попробовать следующий подход. Добавьте карту на уровень http :

map $arg_id $idmap {
    default 0;
    "69" 1;
}

map $arg_monat $monatmap {
    default 0;
    "02" 1;
}

map $arg_jahr $jahrmap {
    default 0;
    "2020" 1;

Затем используйте следующие блоки if :

if ($idmap = 1) {
    rewrite ^ https://www.camper-center.ch/? last;
}

if ($jahrmap$monatmap = "11") {
    rewrite ^ https://www.camper-center.ch/news/aktuell.html?month=02&year=2020 last;
}

map отображает содержимое входной переменной в выходную переменную. $ arg_id принимает аргумент запроса id из URI. На приведенной выше карте nginx сравнивает аргумент id с 69 . Если он совпадает, $ idmap получает значение 1. В противном случае он получает значение 0.

Аргументы monat и jahr обрабатываются аналогично. Их выходные переменные объединяются в , если сравнение, и если оба аргумента соответствуют значениям, указанным в map , то выполняется перезапись .

0
ответ дан 4 January 2021 в 09:52

Теги

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