答案1
确切的答案是“从不”。您可以\
在字符串中引用或转义一些特殊字符,如“ ”或“;”(这些字符会使语句的含义不明确),因此
add_header X-MyHeader "Test String;";
会像
add_header X-MyHeader Test\ String\;;
事实上:只需使用引号:)
nginx
编辑:正如有些人喜欢吹毛求疵:根据我对配置语法的理解,可能使语句产生歧义的字符列表不一定完整:
<space> " ' { } ; $ \
并且可能需要转义$
甚至\
在引号字符串中以避免变量扩展。
不幸的是,我无法在文档中找到此类字符的完整且权威的列表。
答案2
包含空格和/或其他特殊字符的值需要加引号,否则nginx
将无法识别它们。在您当前的示例中,引号没有区别,但无论如何,引用值是一种很好的做法/经验法则
答案3
一个片段来自“if”的文档:
如果正则表达式包含“}”或“;”字符,则整个表达式应该用单引号或双引号括起来。
还有提到转义映射中的源(左侧匹配)值:
如果源值与下面描述的特殊参数名称之一匹配,则应以“\”符号作为前缀...
- 默认价值...
- 主机名...
- 包括文件...
- 易挥发的