
Итак, на данный момент у меня работает следующее:
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;
}
решение1
Пытаться:
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
Просто адаптируйтесь к своим потребностям.
решение2
Вы можете попробовать следующий подход. Добавьте map
в 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. В примере map
выше nginx сравнивает id
аргумент с 69
. Если он совпадает, $idmap
получает значение 1. В противном случае получает значение 0.
Аргументы monat
и jahr
обрабатываются аналогично. Их выходные переменные объединяются в if
сравнении, и если оба аргумента соответствуют значениям, указанным в map
, то rewrite
выполняется .