![根据环境变量有条件地使用 mod_expires](https://linux22.com/image/614764/%E6%A0%B9%E6%8D%AE%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E6%9C%89%E6%9D%A1%E4%BB%B6%E5%9C%B0%E4%BD%BF%E7%94%A8%20mod_expires.png)
mod_expires
我从 HTML5 Boilerplate 中借用了一些代码,这些代码为资产到期添加了一些合理的默认值(我使用 htaccess 配置了文件名版本转速,因此我可以在资产扩展名之前添加 mtimes,例如script.123456789.js
):
ExpiresActive on
ExpiresDefault "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 year"
# Data interchange
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
# ... etc ...
但是,我想在我的开发服务器上禁用这些功能(这会设置DEVELOPMENT=1
环境变量)。是否可以在 2.4.4 中有条件地禁用mod_expires
(也许),就像在设置了环境变量时ExpiresActive On
可以禁用一样( )?mod_access
Allow from env=DEVELOPMENT
答案1
我不知道有什么简单的方法可以根据环境变量的值来执行此操作。您也许可以使用 mod_rewrite 找到一种方法,但这种方法不太好用。
一种更简单的方法是让您的开发服务器为 Apache 设置命令行开关,-DDEVELOPMENT
而不是(或除了)环境变量。然后 Apache 配置变得简单:
<IfDefine !DEVELOPMENT>
ExpiresActive on
...
</IfDefine>
设置开关的正确位置取决于您的发行版。在 Debian 及系列中,您可以设置
export APACHE_ARGUMENTS=-DDEVELOPMENT
在 /etc/apache2/envvars 中。在 RHEL 中,您可以设置
OPTIONS=-DDEVELOPMENT
在 /etc/sysconfig/httpd 中。