<IfModule> 在 .htaccess 中有什么作用?

twh*_*mon 5 .htaccess apache-2.2

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType application/javascript "access 1 week"
    ExpiresByType text/css "access 1 week"
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我在我的 .htaccess 文件中使用了很多这些来设置缓存、放气、接受编码头和东西。我注意到如果我删除打开和关闭标签,一切都会继续工作。这些有什么作用,只要一切正常,删除它们是否安全?

Unb*_*ver 6

<IfModule>只是一个测试条件“是由 apache httpd 加载的命名模块”的指令(在您的示例中为 mod_expires)。它允许人们为可能存在或不存在某些模块的不同安装生成基于条件的配置。

最佳实践是除非必要,否则不要使用它。理想情况下,您应该知道您的 Web 服务器加载了哪些模块以及哪些配置指令可用。

您可以随时检查您的网络服务器正在使用的模块,apachectl -M并且apachectl configtest在重新启动您的网络服务器之前,应该显示您在未加载相关模块的情况下使用的任何指令。