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

So legen Sie die Anzahl der MySQL-Verbindungen fest (zu viele Verbindungen)

Während der Verwendung von MySQL wurde festgestel...

Welche Vorteile bietet die Verwendung eines B+-Baums als Indexstruktur in MySQL?

Vorwort In MySQL verwenden sowohl Innodb als auch...

Vue-Vorlagenkonfiguration und Webstorm-Codeformatspezifikationseinstellungen

Inhaltsverzeichnis 1. Einstellungen für die Spezi...

Beispiele und bewährte Vorgehensweisen für die Seitennummerierung

<br />Struktur und Hierarchie reduzieren die...

Einige Tipps zur Verwendung von Less in Vue-Projekten

Inhaltsverzeichnis Vorwort 1. Stildurchdringung 1...

Der Prozess der Installation von Docker im Linux-System

In diesem Blog führe ich Sie in einfachen Schritt...

URL-Darstellung in HTML-Webseiten

In HTML werden gängige URLs auf verschiedene Arten...

CSS-Beispielcode zur Implementierung von Schiebetüren

Durch die sogenannte Sliding Door-Technologie läs...

MySQL Serie 14 MySQL Hochverfügbarkeitsimplementierung

1. MHA Durch die Überwachung des Masterknotens ka...