Quando você precisa usar aspas na configuração?

24

Vi pessoas usarem citações excessivas :

add_header 'Access-Control-Allow-Origin' '*';

Vi pessoas sem aspas :

add_header Access-Control-Allow-Origin *;

Ambos funcionam bem, tanto quanto eu sei, então quando você realmente precisa usar aspas?

Der Hochstapler
fonte

Respostas:

29

A resposta exata é "nunca". Você pode citar ou \retirar alguns caracteres especiais como "" ou ";" em strings (caracteres que tornariam o significado de uma declaração ambígua), então

add_header X-MyHeader "Test String;"; 

funcionaria como

add_header X-MyHeader Test\ String\;;

Na realidade: basta usar aspas :)


Edit: Como algumas pessoas gostam de nitpick: A lista não necessariamente completa de caracteres que podem tornar uma declaração ambígua está de acordo com o meu entendimento da nginxsintaxe de configuração:

<space> " ' { } ; $ \ 

e pode ser necessário escapar $e\ até em cadeias citadas para evitar expansão variável.

Infelizmente, não consigo encontrar uma lista completa e autorizada desses caracteres nos documentos.

Sven
fonte
1
Nem sempre é uma questão de nitpicking. O arquivo de configuração pode ser gerado por um software de terceiros. Que pode ser fornecido com um modelo e variáveis ​​a serem interpoladas. O software não pode ter certeza do que as variáveis ​​podem conter; portanto, idealmente, ele deve saber como citar qualquer string.
x-yuri
5

As cotações são necessárias para valores que contêm espaço (s) e / ou alguns outros caracteres especiais; caso contrário nginx, não os reconhecerão. No seu exemplo atual, as aspas não fazem diferença, mas de qualquer maneira citar valores é uma boa prática / regra de ouro

user1700494
fonte
3
Qual é a lista de caracteres especiais. Existe documentação sobre isso e como escapar deles. Eu vi aspas simples e duplas nas mesmas linhas ...
Pork 'n' Bunny