Nous expliquerons les exemples Regex de l'emplacement de Nginx en détail dans cet article.
Conditions préalables
On suppose dans cet article que Nginx est déjà installé sur votre système.
Syntaxe de la directive de localisation de Nginx
La syntaxe suivante est disponible pour le répertoire de localisation dans le fichier de configuration Nginx:
Emplacement [modificateur] [URL-Match]Le bloc d'emplacement Nginx peut être ajouté dans un bloc de serveur ou sur un autre emplacement avec certaines conditions prédéfinies. Dans la syntaxe ci-dessus, le modificateur est un paramètre facultatif. La présence de modificateurs dans le bloc de localisation permet à Nginx de faire face à une URL dans un ordre différent. Ici, quelques modificateurs sont mentionnés ci-dessous avec quelques exemples:
Correspondant à toute demande avec le bloc d'emplacement Nginx
Le '/' est utilisé pour l'emplacement du préfixe pour correspondre à toutes les demandes. Cependant, si aucune meilleure correspondance n'est recherchée, elle sera utilisée comme dernier résultat.
Exemple
Dans le bloc d'emplacement suivant, il correspondra à toutes les demandes:
Faire correspondre le répertoire à l'aide du bloc de localisation dans nginx
L'exemple suivant correspondra à toute demande dans le bloc de localisation qui commence par / images /. Par conséquent, la recherche d'un bloc correspondant plus spécifique avec l'URI demandé. Cependant, si Nginx ne recherche pas une correspondance plus spécifique alors, le bloc d'emplacement sera sélectionné directement.
Exemple
Dans ce qui précède, Nginx correspondra à toute demande dans le bloc d'emplacement qui commence par / images /.
Faites correspondre exactement en utilisant '=' (égal à) Modificateur d'emplacement
Le modificateur '=' signe égal est utilisé lorsque vous correspondez exactement au bloc d'emplacement avec un URI demandé.
Exemple
Nginx essaie d'abord de faire correspondre les emplacements de préfixe les plus spécifiques. Cependant, dans l'exemple suivant, le modificateur '=' dans le bloc d'emplacement correspondra exactement au chemin du préfixe demandé, puis arrêtez de rechercher de meilleures correspondances.
Dans l'exemple de bloc d'emplacement susmentionné, le modificateur d'emplacement '=' correspondra exactement à l'URL Mydomain.com / imgs. Le mydomain / IMGS des URLs / index.html 'ou' mydomain / imgs / 'ne correspondra pas à la condition.
Match regex sensible à la caisse à l'aide du modificateur Tilda (~)
Le modificateur Tilda (~) effectue la recherche de correspondance d'expression régulière sensible à la cas contre l'URI demandé et recherche en continu une meilleure correspondance.
Exemple
Le modificateur ~ dans l'exemple suivant effectue la correspondance regex (expression régulière) sensible à la casse dans le bloc de localisation:
Match insensible au cas à l'aide du modificateur Tilda (~ *)
Le signe Tilde avec un modificateur Asterisk (~ *) correspond à n'importe quelle demande (insensible à cas) dans le bloc d'emplacement suivant qui se termine par un format de fichier spécifique tel que le fichier se terminant par PNG, GIF, ICO, JPEG, JPG, CSS ou JS. Cependant, toutes les demandes envoyées au dossier / IMGS /.
Exemple
Dans le bloc d'emplacement suivant, il correspondra à tous les types de fichiers insensibles à la casse.
Modificateur Caret-Tilde Sign (^ ~) pour le match Regex
Le modificateur Caret-Tilda (^ ~) est utilisé pour effectuer la correspondance d'expression régulière sensible à la cas contre l'URL demandée. Par conséquent, si l'URI correspondant sera apparié dans le / IMGS ou / IMGS / PICO.PNG, il cesse de chercher pour trouver un meilleur match.
Emplacement ^ ~ / imgsConclusion
Nous avons discuté de quelques exemples et de détails importants sur la directive de localisation Nginx avec Regex. Nous avons également mentionné l'utilisation de modificateurs avec des exemples dans cet article. J'espère que cet article vous aidera à comprendre le concept principal des blocs de localisation dans Nginx. Merci!