不同的过期标题为特定的URL

整个应用程序在.htaccess中设置了一个全局过期头文件我有一个URL eg / current,我需要一个不同的过期头文件。

另一个解决scheme是使用Apache mod_setenvif和mod_headers来有条件地设置caching头。

SetEnvIf Request_URI "^/current$" OVERRIDE_CACHE_HEADERS=TRUE Header set Cache-Control no-cache env=OVERRIDE_CACHE_HEADERS 

我还没有尝试过这个特定的configuration,但我有一个类似的设置环境variables与RewriteRule指令,然后使用标头有条件地更改caching控制指令

使用可以使用<Location> apache指令为特定的URL定义不同的选项(例如过期)。

我假设:

  1. 您希望某个目录内的所有内容与网站的其他部分有不同的过期时间,而不仅仅是几个文件。 例如:dynamic生成的JS文件; 频繁更换标志和其他图像文件; 或经常编辑的CSS,你想非常短的caching生命周期..
  2. Apache直接提供的内容 – 这不是一个视图文件夹或PHP的框架包括的东西。
  3. 你有mod_expires模块启用

.htaccess文件会在每个目录中被search,如果它们是从docroot开始启用的话。 因此,最简单的方法就是将一个新的.htaccess文件放在您想要更改过期限制的目录中。 如果您的网站是www.foo.com,并且您希望/当前在www.foo.com/current中有一个简单的.htaccess文件,则它们会有一个不同的过期头文件。 该文件只需要:

 # enable expirations with mod_expires <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 2 weeks" </IfModule> 

这就是说…整个服务器,虚拟主机块或docroot的.htaccess的httpd.conf文件中的块将是更优雅和可pipe理的解决scheme。