<IfModule mod_expires.c> ExpiresActive On ExpiresByType application/javascript "access 1 week" ExpiresByType text/css "access 1 week" </IfModule>
我使用了很多这些在我的.htaccess文件来设置caching,放气,接受编docker和东西。 我注意到,如果我删除打开和closures标签,一切都继续工作。 这些做什么,只要一切似乎正常工作,删除它们是安全的?
<IfModule>只是一个testing条件“是由Apache httpd加载的命名模块”的指令(在你的例子中是mod_expires)。 它允许人们为特定模块可能存在或不存在的不同安装生成基于条件的configuration。
除非必要,最佳做法是不使用它。 理想情况下,您应该知道您的Web服务器加载了哪些模块,从而知道哪些configuration指令可用。
您可以随时使用apachectl -M和apachectl configtest检查您的Web服务器正在加载的模块,然后重新启动Web服务器之前应该显示您已经使用的任何指令,而不加载相关模块。
它包含了只有在服务器中有特定模块可用时才会应用的指令。 该模块必须在服务器中静态编译,或者必须dynamic编译,并且其LoadModule行必须早于configuration文件。 只有当你需要你的configuration文件工作时,才能使用这个指令,而不pipe是否安装了某些模块。 它不应该被用来包含你想要一直工作的指令,因为它可以抑制关于缺less模块的有用的错误信息。
在以下示例中,仅当mod_mime_magic可用时,才会应用MimeMagicFile指令。
<IfModule mod_mime_magic.c> MimeMagicFile "conf/magic" </IfModule>