NGNIX-Umleitung mit zwei Parametern

NGNIX-Umleitung mit zwei Parametern

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=2020mit 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 mapEingangsebene 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 ifBlö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;
}

mapordnet den Inhalt der Eingabevariablen der Ausgabevariablen zu. $arg_idnimmt das Abfrageargument idvon der URI. Im mapobigen Beispiel vergleicht nginx das idArgument mit 69. Wenn es übereinstimmt, $idmaperhält es den Wert 1. Andernfalls erhält es den Wert 0.

Die Argumente monatund jahrwerden ähnlich behandelt. Ihre Ausgabevariablen werden beim ifVergleich verkettet, und wenn beide Argumente mit den in angegebenen Werten übereinstimmen map, rewritewird ausgeführt.

verwandte Informationen