So konfigurieren Sie den Standort auf dem Nginx-Server

WBOY
Freigeben: 2023-05-14 19:16:12
nach vorne
3566 Leute haben es durchsucht

Syntax
location [=|~|~*|^~] /uri/ {...}

Rules
=: Gibt die genaue URI-Übereinstimmung an (interessierte Schüler können sich den URL- und URI-Unterschied ansehen)
~: Gibt an, dass die Groß-/Kleinschreibung beachtet werden soll.
~*: Zeigt an, dass die Groß-/Kleinschreibung nicht berücksichtigt werden soll.
!~ && !~*: Zeigt an, dass die Groß-/Kleinschreibung nicht berücksichtigt werden muss. Normal und ohne Berücksichtigung der Groß-/Kleinschreibung.
/: Universeller Abgleich, beliebig Die Anfrage wird mit dem

Standortübereinstimmungsziel
abgeglichen. Der Standortübereinstimmungstest verwendet nur den Anforderungs-URI-Teil, nicht den Parameterteil. (Grund: Es gibt zu viele Möglichkeiten, Parameter zu schreiben und sie können nicht genau abgeglichen werden)

Standortübereinstimmungsreihenfolge
Unter der Voraussetzung mehrerer Standortkonfigurationen ist die Standortübereinstimmungsreihenfolge (nicht überprüft, hehe, bei Google gesucht)
1. Zuerst abgleichen =
2. Als nächstes führen Sie den regulären Abgleich gemäß der Reihenfolge der Konfigurationsdatei durch,
4. Übergeben Sie ihn schließlich an / für den allgemeinen Abgleich Erfolgreicher Abgleich: Stoppen Sie den Abgleich und befolgen Sie die aktuellen Abgleichsregeln. Die nginx-Konfigurationsdatei ist von unten nach oben in drei hierarchische Strukturen unterteilt:
| Level V-Standortblock ermöglicht die angeforderte URI

nginx. Der Benutzer definiert den Standortblock und gibt ein passendes Muster an, um mit einem bestimmten URI übereinzustimmen. Neben einfachen Zeichenfolgen (z. B. Dateisystempfaden) sind auch komplexere Übereinstimmungsmuster zulässig. Die grundlegende Syntaxform des

location-Blocks lautet:

  location [=|~|~*|^~|@] pattern { ... }
Nach dem Login kopieren

[=|~|~*|^~|@] wird als Standortmodifikator bezeichnet, der definiert, wie Nginx mit dem nachfolgenden Muster übereinstimmt, und das grundlegendste Musterattribut (einfache Zeichenfolge oder regulärer Ausdruck).


Über den Standortmodifikator



1. =

Dies entspricht vollständig dem angegebenen Muster, und das Muster hier ist auf eine einfache Zeichenfolge beschränkt, was bedeutet, dass hier keine regulären Ausdrücke verwendet werden können.

Beispiel:

server {
  server_name jb51.net;
  location = /abcd {
  […]
  }
}
Nach dem Login kopieren

Übereinstimmungssituation:

http://jb51.net/abcd # Stimmt genau überein http://jb51.net/abcd # Wenn das System, auf dem der Nginx-Server ausgeführt wird, die Groß-/Kleinschreibung nicht beachtet, wie z. B. Windows, dann stimmt es auch überein http://jb51.net/abcd?param1?m2 # Ignorieren Sie die Argumente der Abfragezeichenfolge, hier ist das ?param1?m2 nach /abcd http://jb51.net/abcd/ # Stimmt nicht überein, weil Am Ende steht ein Schrägstrich. Nginx betrachtet diese Situation nicht als vollständige Übereinstimmung. http://jb51.net/abcde # Stimmt nicht überein, da es sich nicht um eine vollständige Übereinstimmung handelt

Sie müssen keinen Standortmodifikator schreiben, Nginx kann trotzdem mit dem Muster übereinstimmen. Passen Sie in diesem Fall die URIs an, die mit dem angegebenen Muster beginnen. Beachten Sie, dass es sich bei den URIs hier nur um gewöhnliche Zeichenfolgen handeln kann und keine regulären Ausdrücke verwendet werden können.

Beispiel:

server {
  server_name website.com;
  location /abcd {
  […]
  }
}
Nach dem Login kopieren

Übereinstimmungssituation:

http://jb51.net/abcd # Stimmt genau überein
http://jb51.net/abcd # Wenn das System, auf dem der Nginx-Server ausgeführt wird, die Groß-/Kleinschreibung nicht beachtet, wie z. B. Windows, dann stimmt es auch überein
http://jb51.net/abcd?param1?m2 # Ignorieren Sie die Argumente der Abfragezeichenfolge, hier ist das ?param1?m2 nach /abcd http://jb51.net/abcd/ # Der abschließende Schrägstrich bei das Ende liegt ebenfalls im passenden Bereich
http://jb51.net/abcde # Es stimmt immer noch überein, da die URI mit dem Muster

3 beginnt. Bei diesem Standortmodifikator wird die Groß-/Kleinschreibung beachtet und das Muster muss a sein regulärer Ausdruck

example:
server {
  server_name jb51.net;
  location ~ ^/abcd$ {
  […]
  }
}
Nach dem Login kopieren

Übereinstimmungssituation:
http://jb51.net/abcd # Exakte Übereinstimmung
http://jb51.net/abcd # Keine Übereinstimmung, ~ unterscheidet zwischen Groß- und Kleinschreibung
http://jb51.net/ abcd?param1?m2 # Ignorieren Sie die Abfragezeichenfolgenargumente, hier ist ?param1?m2 nach /abcd http://jb51.net/abcd/ # Stimmt nicht überein, da am Ende ein Schrägstrich steht, ist dies nicht der Fall Übereinstimmung mit dem regulären Ausdruck^/abcd$

http://jb51.net/abcde Bei sensiblen Systemen wie Windows funktionieren ~ und ~* nicht. Dies liegt hauptsächlich am Betriebssystem.

4. ~*
与 ~ 类似,但这个 location modifier 不区分大小写,pattern 须是正则表达式
example:

server {
  server_name website.com;
  location ~* ^/abcd$ {
  […]
  }
}
Nach dem Login kopieren

匹配情况:
    http://jb51.net/abcd        # 完全匹配
    http://jb51.net/abcd        # 匹配,这就是它不区分大小写的特性
    http://jb51.net/abcd?param1?m2    # 忽略查询串参数(query string arguments),这里就是 /abcd 后面的 ?param1?m2
    http://jb51.net/abcd/    # 不匹配,因为末尾存在反斜杠(trailing slash),并不匹配正则表达式 ^/abcd$
    http://jb51.net/abcde    # 不匹配正则表达式 ^/abcd$

5. ^~
匹配情况类似 2. (none) 的情况,以指定匹配模式开头的 uri 被匹配,不同的是,一旦匹配成功,那么 nginx 就停止去寻找其他的 location 块进行匹配了(与 location 匹配顺序有关)

6. @
用于定义一个 location 块,且该块不能被外部 client 所访问,只能被 nginx 内部配置指令所访问,比如 try_files or error_page

演示实例

So konfigurieren Sie den Standort auf dem Nginx-Server

产生的效果如下:
访问根目录/,匹配到location /
访问除hello.php之外的其它php程序,匹配到location ~ \.php$,并且用php5-fpm去运行
访问hello.php,匹配到location = /hello.php,访问被重定向到好联系官网

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie den Standort auf dem Nginx-Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage