So implementieren Sie eine verschachtelte if-Methode in Nginx

So implementieren Sie eine verschachtelte if-Methode in Nginx

Nginx unterstützt weder verschachtelte if-Anweisungen noch erlaubt es logische Urteile in if-Anweisungen. Der folgende Fehler wird gemeldet:

nginx: [emerg] „if“-Direktive ist nicht zulässig

Wenn das Geschäft mehrere Zustandsbeurteilungen erfordert, kann dies mit Hilfe von Zwischenvariablen umgesetzt werden.

Beispielsweise verfügt unsere Website auf der PC-Seite über mehrere Subdomains, auf der mobilen Seite jedoch nur über einen Domänennamen. Die entsprechende Beziehung ist wie folgt:

  • www.test.com --> m.test.com
  • sub1.test.com --> m.test.com/sub1
  • sub2.test.com --> m.test.com/sub2
  • sub3.test.com --> m.test.com/sub3

Der zu erzielende Effekt: Wenn Sie auf dem mobilen Endgerät auf den PC-Domänennamen zugreifen, springen Sie mit 301 zum entsprechenden Domänennamen des mobilen Endgeräts

Die Umschreiberegeln für nginx lauten wie folgt:

# Ist es ein mobiles Terminal? setze $mobile 0;
wenn ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
  setze $mobile 1;
}

# Holen Sie sich den Subdomänensatz $prefix 1;
wenn ($host ~* "sub1.test.com") {
  Setze $prefix 2;
}
wenn ($host ~* "sub2.test.com") {
  Setze $prefix 3;
}
wenn ($host ~* "sub3.test.com") {
  Setze $prefix 4;
}
setze $sign "${mobile}${prefix}";
wenn ($sign = 11) {
  umschreiben ^(.*) http://m.test.com$1 permanent;
}
wenn ($sign = 12) {
  umschreiben ^(.*) http://m.test.com/sub1$1 permanent;
}
wenn ($sign = 13) {
  umschreiben ^(.*) http://m.test.com/sub2$1 permanent;
}
wenn ($sign = 14) {
  umschreiben ^(.*) http://m.test.com/sub3$1 permanent;
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Lösung für „Keine Eingabedatei angegeben“ in nginx+php
  • Detaillierte Erläuterung der Beurteilungsbedingungen und der Beurteilung mehrerer Bedingungen von if-Anweisungen in Nginx
  • Nginx implementiert, wenn ein Beispiel für eine Konfigurationsmethode mit mehreren Urteilen vorliegt
  • Implementierung einer mathematischen Vergleichsfunktion in einer IF-Anweisung in Nginx
  • Beispiele für die Verwendung von IF-, AND- und OR-Anweisungen in Nginx
  • Nginx if-Anweisung plus regulärer Ausdruck, um eine Zeichenfolgenkürzung zu erreichen

<<:  MySQL 5.7.18 Green Edition Download- und Installations-Tutorial

>>:  JavaScript zum Erreichen eines vollständigen oder umgekehrten Auswahleffekts im Formular

Artikel empfehlen

Zusammenfassung der MySQL-Injection-Bypass-Filtertechniken

Schauen wir uns zunächst den GIF-Vorgang an: Fall...

Vue implementiert das Umschalten des Anmeldetyps

In diesem Artikelbeispiel wird der spezifische Co...

js realisiert Warenkorb-Add- und Subtraktions- sowie Preisberechnungsfunktionen

In diesem Artikel wird der spezifische Code von j...

Eine kurze Analyse der expliziten Typkonvertierung von MySQL

CAST-Funktion Im vorherigen Artikel haben wir die...

Lösung für den Fehler 1045, wenn Navicat eine Verbindung zu MySQL herstellt

Beim Herstellen einer Verbindung mit der lokalen ...

Beispielcode zur Implementierung eines Laufschriftformats mit CSS3

Hintergrund Folgendes ist passiert: Luzhu erfuhr ...

MySQL-Fall bei der Verwendungsbeispielanalyse

Zuerst erstellen wir die Datenbanktabelle: Tabell...

Beispielcode für HTML-Layered-Box-Shadow-Effekt

Schauen wir uns zunächst das Bild an: Heute werde...

Detailliertes Beispiel der MySQL curdate()-Funktion

Einführung in die MySQL CURDATE-Funktion Bei Verw...

So entwerfen Sie MySQL-Statistikdatentabellen

Inhaltsverzeichnis Ist eine Echtzeitaktualisierun...