#<IfModule mod_headers.c> Header unset Pragma FileETag None Header unset ETag ExpiresActive On <FilesMatch "\\.(ico|jpg..)$"> etc </FilesMatch> #</IfModule> #<ifmodule mod_php4.c> php_value zlib.output_compression 16386 #</ifmodule>
各位伙伴,我可以评论这些IfModule的东西,因为我不打算改变未来的任何年份,而且我也不愿意为了IIS或者其他任何东西而改变Apache。
换句话说:这些ifModule的实际使用情况是什么? 您的启发性build议或答案非常赞赏这个话题。
那些是有条件的加载。 如果加载了特定的Apache模块,则允许该configuration块生效。 如果这些模块没有加载,它们不会被执行。
请注意,Apacheconfiguration文件中一行中的前导'#'表示注释。 只有在给定模块已经加载的情况下才能执行语句的实际语法很简单:
<IfModule ...> statements to execute... </IfModule>
如果您复制注释掉开始和结束条件语句的语句块,那么这些注释中的行将始终执行。 在这种情况下,如果模块实际上已加载(或者语句不依赖于模块),则不会看到错误。 但使用条件语句的目的是为了避免在其他情况下的错误。