根据环境变量有条件地使用 mod_expires

根据环境变量有条件地使用 mod_expires

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_accessAllow 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 中。

相关内容