
Also im Moment funktioniert das für mich:
if ($request_uri = "/web/news.php?id=69") {
rewrite ^ https://www.camper-center.ch/? last;
}
Aber jetzt habe ich auch URLs /web/listing.php?monat=02&jahr=2020
mit zwei Parametern statt einem wie oben.
if ($request_uri = "/web/listing.php?monat=02&jahr=2020") {
rewrite ^ https://www.camper-center.ch/news/aktuell.html?month=02&year=2020? last;
}
das scheint nicht zu funktionieren. Haben Sie Vorschläge?
Da ich auf die Seite mit den deutschen Parametern weitergeleitet wurde, habe ich sie umgeleitet und am Ende hat es bei mir so funktioniert:
if ($request_uri = "/news/aktuell.html?monat=02&jahr=2020") {
rewrite ^ https://www.camper-center.ch/news/aktuell.html?month=02&year=2020? last;
}
Antwort1
Versuchen:
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
Passen Sie es einfach Ihren Bedürfnissen an.
Antwort2
Sie können den folgenden Ansatz versuchen. Fügen Sie eine map
Eingangsebene hinzu 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;
Dann verwenden Sie folgende if
Blöcke:
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
ordnet den Inhalt der Eingabevariablen der Ausgabevariablen zu. $arg_id
nimmt das Abfrageargument id
von der URI. Im map
obigen Beispiel vergleicht nginx das id
Argument mit 69
. Wenn es übereinstimmt, $idmap
erhält es den Wert 1. Andernfalls erhält es den Wert 0.
Die Argumente monat
und jahr
werden ähnlich behandelt. Ihre Ausgabevariablen werden beim if
Vergleich verkettet, und wenn beide Argumente mit den in angegebenen Werten übereinstimmen map
, rewrite
wird ausgeführt.