将注释添加到.htaccess
为什么这个工作:
RewriteRule (.+)/$ $1
这个工作:
RewriteRule (.+)/$ $1 [L] #bla bla bla
但是这不起作用:
RewriteRule (.+)/$ $1 #bla bla bla
.htaccess中的注释必须在其自己的行上 ,而不是附加到其他语句。
最后的规则不起作用,因为评论不是真正的评论。 htaccess中的注释必须以#
开始 (必须在行的开始处),而不是随意的。
在第二种情况下, #bla bla bla
被解释为RewriteRule
指令的第四个参数,它被简单地忽略。
在最后一种情况下, #bla bla bla
被解释为第三个参数,在RewriteRule
的情况下是标志去的地方, #bla bla bla
不是mod_rewrite理解的标志,所以你得到一个错误。
Apache的configuration文件格式(其中.htaccess
文件就是其中一个例子)在技术上不支持内联注释,只有全行注释(即以#
开头的行)。
以散列字符“#”开头的行被视为注释,并被忽略。 configuration指令后,注释可能不包含在一行中。 – 正式的Apache 2.4手册
令人困惑的是,每个模块都可以parsing其指令的input,但它喜欢 – 所以mod_rewrite
决定如何处理以RewriteRule
开头的行
我不知道,但我的猜测是, mod_rewrite
忽略[flags]
之后的所有内容,而#
实际上并不是必须的。
但最好的办法就是始终保留自己的意见,因为无论你在评论什么指令,这都可以工作。