Oliver Salzburg Asked: 2016-08-04 00:37:46 +0800 CST2016-08-04 00:37:46 +0800 CST 2016-08-04 00:37:46 +0800 CST 什么时候必须在 Nginx 配置中使用引号? 772 我见过人们使用过多的引号: add_header 'Access-Control-Allow-Origin' '*'; 我见过人们不使用引号: add_header Access-Control-Allow-Origin *; 据我所知,两者都工作得很好,所以你什么时候必须使用引号? nginx 3 个回答 Voted Best Answer Sven 2016-08-04T00:50:44+08:002016-08-04T00:50:44+08:00 确切的答案是“从不”。您可以引用或\转义一些特殊字符,如“”或“;” 在字符串(会使语句的含义不明确的字符)中,所以 add_header X-MyHeader "Test String;"; 会像 add_header X-MyHeader Test\ String\;; 实际上:只需使用引号 :) 编辑:因为有些人喜欢吹毛求疵:根据我对nginx配置语法的理解,不一定完整的可以使陈述模棱两可的字符列表: <space> " ' { } ; $ \ 并且可能需要转义$甚至\在引用的字符串中以避免变量扩展。 不幸的是,我在文档中找不到此类字符的完整且权威的列表。 user1700494 2016-08-04T00:45:59+08:002016-08-04T00:45:59+08:00 包含空格和/或一些其他特殊字符的值需要引号,否则nginx将无法识别它们。在您当前的示例中,引号没有区别,但无论如何引用值是一个很好的做法/经验法则 Ed Randall 2020-02-11T05:59:21+08:002020-02-11T05:59:21+08:00 'if' 文档中的一个片段: 如果正则表达式包含“}”或“;” 字符,整个表达式应该用单引号或双引号括起来。 还提到了在 map 中转义源(左侧匹配)值: 如果源值与下面描述的特殊参数的名称之一匹配,则应以“\”符号为前缀... 默认值... 主机名... 包含文件... 易挥发的
确切的答案是“从不”。您可以引用或
\
转义一些特殊字符,如“”或“;” 在字符串(会使语句的含义不明确的字符)中,所以会像
实际上:只需使用引号 :)
编辑:因为有些人喜欢吹毛求疵:根据我对
nginx
配置语法的理解,不一定完整的可以使陈述模棱两可的字符列表:并且可能需要转义
$
甚至\
在引用的字符串中以避免变量扩展。不幸的是,我在文档中找不到此类字符的完整且权威的列表。
包含空格和/或一些其他特殊字符的值需要引号,否则
nginx
将无法识别它们。在您当前的示例中,引号没有区别,但无论如何引用值是一个很好的做法/经验法则'if' 文档中的一个片段:
还提到了在 map 中转义源(左侧匹配)值: