【发布时间】:2016-06-02 17:39:10
【问题描述】:
是否可以注释掉 .htaccess 文件的一个或多个部分,就像在各种编程语言中使用 /* 和 */ 一样?
【问题讨论】:
是否可以注释掉 .htaccess 文件的一个或多个部分,就像在各种编程语言中使用 /* 和 */ 一样?
【问题讨论】:
严格来说,.htaccess 文件只允许单行 cmets:行首的井号 (#) 让解析器知道该行应该被忽略,即:
# this is a comment in an .htaccess file and many other scripting languages
但是,从实际角度来看,可以将任意数量的连续行包装在一个 IF 块中(可从 Apache 2.4 获得)。 这有效地禁用了块内的行。例如:
<IF "false">
...disabled directives...
</IF>
话虽如此,许多编程语言中的多行注释将允许或多或少包含其中的任何内容,即简单的英语而不是可行的代码。 相反,上面提到的 IF 块的内容必须由正确的 .htaccess 指令和常规的单行 cmets 组成 - 否则会产生 http 500 错误。
【讨论】:
扩展并给出Manu3D 答案的示例,您可以将评论内容封装到FilesMatch directive 并使用不太可能的文件名进行匹配。
<FilesMatch "index-sbrubles123land9897Brazil\.(php?)$">
#commented content here
</FilesMatch>
但是,我会避免在生产环境中使用许多 cmets,尤其是这种“人造多行注释”技术。我认为 Apache 花在解析 .htaccess 文件上的时间越少越好(越不容易出错)。
并且不要忘记,无论如何,您不能在此错误评论中使用文本或任何无效的 apache 语法。暂时或有条件地禁用其他指令会很有帮助,但不要评论文本。
【讨论】:
制作许多文件,进行测试并将正确的文件投入生产,其他文件作为备份存储以防万一。我认为这是最优雅的方式,因为 Apache
【讨论】: