IIS 7.5如何添加动态HTTP Expires标头

IIS 7.5如何添加动态HTTP Expires标头,iis,web-config,http-headers,iis-7.5,Iis,Web Config,Http Headers,Iis 7.5,在IIS7.5中,您可以添加静态HTTP响应头,但我想添加一个“Expires”头,它总是指定未来7天的日期 我运行的是PHP5.4,所以我希望有一个解决方案可以通过编辑web.config文件来实现这一点,而不是一些c代码解决方案 我知道如何使用php添加头,但这对静态图像文件的http头(jpg、gif、png等)没有帮助 标题应如下所示: 到期时间:2012年5月31日星期四10:59:25 GMT 如何使其在未来7天内始终动态显示日期和时间 编辑: 请注意,我的php文件中有我想要的ex

在IIS7.5中,您可以添加静态HTTP响应头,但我想添加一个“Expires”头,它总是指定未来7天的日期

我运行的是PHP5.4,所以我希望有一个解决方案可以通过编辑web.config文件来实现这一点,而不是一些c代码解决方案

我知道如何使用php添加头,但这对静态图像文件的http头(jpg、gif、png等)没有帮助

标题应如下所示:

到期时间:2012年5月31日星期四10:59:25 GMT

如何使其在未来7天内始终动态显示日期和时间

编辑:

请注意,我的php文件中有我想要的expires头:

但是,我无法为png文件上的“Expires”键指定提前7天的日期(例如,我必须在遥远的将来使用静态日期:


这是IIS的标准功能。HTTP响应头模块允许您设置此公共头。这将导致以下web.config文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
        </staticContent>
    </system.webServer>
</configuration>


您应该只在希望发送此标头的目录中执行此操作。通常只包含静态内容的目录。

这是IIS的标准功能。HTTP响应头模块允许您设置此公共头。这将导致以下web.config文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
        </staticContent>
    </system.webServer>
</configuration>


您应该只在希望发送此标头的目录中执行此操作。通常只包含静态内容的目录。

您只能使用程序代码添加动态过期标题

资料来源:


您应该改为使用缓存控制最大年龄,就像另一个答案中建议的那样。

您只能使用程序代码添加动态过期标头

资料来源:


您应该使用缓存控制最大年龄,就像另一个答案中建议的那样。

请参阅上面文章中的编辑。我特别想添加一个“Expires”标题;我已经在使用最大年龄;我两者都想要。对不起,我的错,但是IIS没有提供动态设置的机制。您可以设置,但只能设置为固定的日期/时间。但是,
Cache Control
标题
max age
Expires
标题在浏览器中具有相同的效果。
Expires
头是HTTP/1.0功能,而
Cache Control
是HTTP/1.1功能。但据我所知,所有常用浏览器和代理/缓存服务器都支持
缓存控件
头,因此使用/依赖它是安全的。是否可以在web.config文件中设置任何动态值。我找到了一种使用“重写”模块将标题添加到特定文件类型的方法,但仍然无法设置“现在加7天”的值。URL重写模块不提供任何功能来动态计算标题并以所需格式输出日期。我唯一可以考虑的方法是创建一个HTTPModule,并以集成模式运行您的web应用程序/网站。这允许您捕获对静态内容的请求,并通过自己的代码动态添加标题。您可以编写它,以便它查看已经存在的max age值,并使用该值添加Expires头。不需要额外的配置。请参阅上面文章中的编辑。我特别想添加一个“Expires”标题;我已经在使用最大年龄;我两者都想要。对不起,我的错,但是IIS没有提供动态设置的机制。您可以设置,但只能设置为固定的日期/时间。但是,
Cache Control
标题
max age
Expires
标题在浏览器中具有相同的效果。
Expires
头是HTTP/1.0功能,而
Cache Control
是HTTP/1.1功能。但据我所知,所有常用浏览器和代理/缓存服务器都支持
缓存控件
头,因此使用/依赖它是安全的。是否可以在web.config文件中设置任何动态值。我找到了一种使用“重写”模块将标题添加到特定文件类型的方法,但仍然无法设置“现在加7天”的值。URL重写模块不提供任何功能来动态计算标题并以所需格式输出日期。我唯一可以考虑的方法是创建一个HTTPModule,并以集成模式运行您的web应用程序/网站。这允许您捕获对静态内容的请求,并通过自己的代码动态添加标题。您可以编写它,以便它查看已经存在的max age值,并使用该值添加Expires头。不需要额外的配置。