我很抱歉在这里发布此类问题,但由于这里拥有丰富的经验和技能,我希望您能理解。
我正在使用(不幸的是)httpd 包(v 2.4.6)。在各种指南中,我看到 httpd.conf 中定义的许多模块加载如下(以“.c”结尾)
<IfModule mod_headers.c>
其他模块将在最后加载时不带“.c”,例如:
<IfModule security2_module>
你可以说我很愚蠢,但我很难找到相关的官方文档,所以我只是猜测:添加“.c”将使用提供的定义覆盖该模块的默认定义。我的这个假设正确吗?
如果没有:有人可以善意地告诉我有关这方面的官方文档吗?
答案1
你必须检查这个页:
模块参数可以是编译时的模块标识符或模块的文件名。例如,rewrite_module 是标识符,mod_rewrite.c 是文件名。如果模块由多个源文件组成,请使用包含字符串 STANDARD20_MODULE_STUFF 的文件名。
简而言之,这意味着:
该模块mod_rewrite.c
被编译为mod_rewrite.so
.源文件mod_rewrite.c
包含 line module AP_MODULE_DECLARE_DATA rewrite_module;
,它声明了一个名为 的模块rewrite_module
。因此,模块可以被称为rewrite_module
或 (模块标识符),或者是mod_rewrite.c
由它编译的。
指令LoadModule
告诉rewrite_module
从编译对象中加载带有标识符的模块mod_rewrite.so
。配置此选项后,您可以引用标识符或源文件名。