添加评论到.htaccess

时间:2014-02-28 22:14:55

标签: apache .htaccess comments

为什么这样做:

RewriteRule (.+)/$ $1

这项工作:

RewriteRule (.+)/$ $1 [L] #bla bla bla

但这不起作用:

RewriteRule (.+)/$ $1 #bla bla bla

2 个答案:

答案 0 :(得分:135)

.htaccess中的注释必须位于自己的行上,而不是附加到其他语句。

最后一条规则不起作用,因为评论不是真正的评论。 htaccess 中的注释必须以#开头(必须在一行的开头),而不是随意的任何地方。

在第二种情况下,#bla bla bla被解释为RewriteRule指令的第4个参数,它被忽略。

在最后一种情况下,#bla bla bla被解释为第三个参数,在RewriteRule的情况下是标志所在的位置,#bla bla bla不是任何标志mod_rewrite理解,所以你得到一个错误。

答案 1 :(得分:28)

Apache的配置文件格式(其中.htaccess个文件就是一个例子)在技术上不支持内联注释,只支持全行注释(即行开头,带{{1 }})。

  

以井号“#”开头的行被视为注释,并被忽略。配置指令后,注释可能不包含在一行中。 - Official Apache 2.4 manual

令人困惑的是,每个模块都会解析其指令的输入,但它喜欢 - 所以#决定如何处理以mod_rewrite开头的任何行

我不确定,但我的猜测RewriteRule忽略了mod_rewrite之后的所有内容,[flags]实际上根本不需要。

但最好的办法是始终保持对自己的评论,因为无论您评论的指令是什么,都可以。