Quand devez-vous utiliser des guillemets dans la configuration?


Réponses:


29

La réponse exacte est "jamais". Vous pouvez soit citer ou \échapper certains caractères spéciaux comme "" ou ";" dans des chaînes (caractères qui rendraient la signification d'une instruction ambiguë), donc

add_header X-MyHeader "Test String;"; 

fonctionnerait comme

add_header X-MyHeader Test\ String\;;

En réalité: utilisez simplement des guillemets :)


Edit: Comme certaines personnes aiment nitpick: La liste pas nécessairement complète des caractères qui peuvent rendre une déclaration ambiguë est selon ma compréhension de la nginxsyntaxe de configuration:

<space> " ' { } ; $ \ 

et il peut être nécessaire de s'échapper $et \même dans des chaînes entre guillemets pour éviter une expansion variable.

Malheureusement, je ne trouve pas de liste complète et faisant autorité de ces personnages dans la documentation.


1
Il ne s'agit pas toujours de piqûre. Le fichier de configuration peut être généré par un logiciel tiers. Qui pourrait être fourni avec un modèle et des variables à interpoler. Le logiciel ne peut pas être sûr de ce que les variables peuvent contenir, donc idéalement il devrait savoir comment citer n'importe quelle chaîne.
x-yuri

5

Des guillemets sont requis pour les valeurs qui contiennent des espaces et / ou d'autres caractères spéciaux, sinon nginxils ne les reconnaîtront pas. Dans votre exemple actuel, les guillemets ne font aucune différence, mais de toute façon, la citation de valeurs est une bonne pratique / règle générale


3
Quelle est la liste des caractères spéciaux. Existe-t-il une documentation à ce sujet et comment y échapper. J'ai vu des guillemets simples et doubles sur les mêmes lignes ...
Pork 'n' Bunny
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.