如何在Apache的httpd.conf文件中添加注释而不作为完整行?

38
在 Apache 配置文件中,以 # 开头的行被视为注释。例如,
#This is a comment line
#And then the following is some real settings:
AllowOverride None

然而,这是不被允许的。

#And then the following is some real settings:
AllowOverride None #A comment that starts in the middle of line

在一行的中间开始一个注释是否可行?如果可以,该怎么做?

3个回答

47

文档指出这是不可能的:

以井号字符“#”开头的行被视为注释并被忽略。配置指令中不能包含注释...


我在想...注释可以缩进吗?也就是说,如果井号前面有空格,这仍然被认为是“以井号开头的行”吗? - osullic
@osullic 是的,它可以缩进。 - jeanpic

4
我相信只有#被解析,因为没有真正的需要。但如果你真的需要,你可以使用IfDefine块,除非有匹配的变量定义,否则它将被忽略。
<IfDefine myexisterenceIsForJustAComment>
...
</IfDefine>

请看讨论: https://bugzilla.redhat.com/show_bug.cgi?id=1349546

不确定最新版本 (< httpd-2.2.15-53) 是否支持,但您可以尝试以下方法,这在早期版本中得到了支持。如果您使用的是旧版本,则可能会有所帮助。

在早期/旧版本的Apache中,我记得可以在行末包含一个注释(用双引号括起来),就像这样:

<Limit GET >
    Order Allow,Deny
    Allow from all
    Deny from xxx.xxx.xxx "# I am in inline comment"
</Limit>

1

Apache会逐行解释其conf文件。如果一行以#开头,它会将其视为空行(或换行符)并跳过该行。 此外,它没有用于表示注释的符号,因为conf文件有许多特殊符号,这可能会导致禁用中间行注释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接