问题标签 [mod-expires]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
29845 浏览

php - 使用哪一个:Expire Header、Last Modified Header 或 ETags

我在 Apache 上运行 PHP,并且对如何实现服务器端缓存以使站点加载更快感到困惑。

Expires,Last-Modified和标头有什么区别ETag,在什么情况下应该使用哪一个?

0 投票
2 回答
404 浏览

php - 如何使用 .htaccess 重定向或 mod_rewrite 目录中的过期图像

我有一个重定向设置,它在目录中查找图像,如果它不存在,它将重定向到调整图像大小并将其保存到该目录的 php 文件。我让它工作得很好。现在的问题是,如果写入的图像是 4 小时前的,我需要找到一种重定向它的好方法。我查看了 Mod_expires 但在图像 4 小时前找不到重定向到我的 php 图像调整器的方法。

我知道我可以在 PHP 中做到这一点,但重点是通过使用 apache 而不是 PHP 来减少服务器负载。我正在开发的网站每天都有数千名观众,所以我真的需要有效地缓存调整大小的图像。这是我正在做的一个例子......

  1. 浏览器请求“http://images.mydomain.com/image/1234_01_thumb.jpg”
  2. Apache 检查“http://images.mydomain.com/image/1234_01_thumb.jpg”是否存在
  3. 如果不存在,则重定向到“/image/resize_image.php”并在“/images/”文件夹中生成缩略图

既然我已经开始工作了,当“1234_01_thumb.jpg”变得 x 小时时,如何让它重定向到“/image/resize_image.php”?在某些时候,有人将不得不更新那张照片,特别是如果他们上传了错误的照片,因此它不会是永久性的。

请帮忙。提前致谢!

0 投票
1 回答
1503 浏览

.htaccess - 页面缓存不正确,响应标头似乎错误...如何解决?

好的,我真的不知道如何提出这个问题,但我的问题或者至少我认为问题是这样的:

我正在处理的博客加载速度非常慢,所以我做了一些正常的事情来加速它,比如添加 gzip 和禁用所有插件等,但它没有帮助。因此,我查看了在 Firebug 中发送的标头,并注意到该页面的原始请求一直在等待,而其余请求正常加载。

这是给定页面的响应/请求标头:

请求标头

响应标头

显然这里出了点问题,因为没有缓存,连接设置为关闭并且过期是 30 年前。

这是我的 .htaccess 文件,我在其中设置了过期标头等。

.htaccess

如果非常感谢任何帮助。

顺便说一句,我在 CentOS 5 上的 PHP 5.2.10/MySQL 5.1 上运行 WordPress 3.1.1。*

0 投票
2 回答
2043 浏览

apache - 有条件地在 Apache 配置中设置过期标头

我想有条件地在图像上设置过期标头,以便它们在项目开发时不会缓存,但在生产时会缓存。理想情况下,这只是对 apache conf 文件的修改。我有一个 perl 脚本,它将返回项目的状态,它可以与 mod_rewrite 一起使用,如下所示:

如果我能做这样的事情会很好:

虽然这当然行不通。

有什么解决办法吗?

0 投票
1 回答
1114 浏览

apache - mod_expires 为 3## 状态码发送 Cache-Control 标头

Apache 正在发送 3## 状态代码的 Cache-Control 标头,例如 302 重定向。这导致 Firefox(可能从 Firefox 5 开始)缓存 302 重定向——这导致我的某些页面出现无限重定向循环。

以下是我在我的 中使用的设置httpd.conf

如果我删除 ExpiresDefault 设置,问题就会消失,所以我确信这是导致问题的确切设置。如果我改成ExpiresDefault A600问题ExpiresByType text/html A600依旧存在。

我想让浏览器默认缓存我的内容,但这会破坏交易。

我可以使用任何设置来告诉 Apache 为 3## 状态代码发送不同的 Cache-Control 标头吗?

0 投票
1 回答
195 浏览

apache - 根据请求启用 mod_expire

我没有生成指向 的链接file.js,而是计算版本号或哈希总和并链接到file--bbe02f946d.js. 我正在使用以下重定向规则来提供文件的当前版本:

现在,我想为这些请求设置非常遥远的Expires标头:

这工作正常,但也适用于尚未版本化的资源(/file.js请求)。如何仅为与 RewriteRule 匹配的请求设置过期标头?通常,我会使用<LocationMatch>,但这不可用,因为应用程序必须能够在我可以修改 htaccess 的任意服务器上运行。

0 投票
1 回答
745 浏览

ruby-on-rails - 为 lighttpd/thin 启用浏览器缓存

我有一个问题,谷歌的“页面速度”说我应该启用浏览器缓存。

我在 lighttpd 服务器中用作服务器上不同 Web 服务器的代理。其中之一是运行瘦服务器的 Rails 应用程序(Ruby 1.9.2/Rails 2.3.x)。

我认为我必须在 lighttpd 代理中启用“mod_expire”并使用设置:

但它没有用。我还将 expire.url 代码移至:

它也没有工作。

所以我的问题是:如何为我的 lighttpd/thin 设置启用浏览器缓存?

不幸的是,谷歌没有帮助我。

0 投票
0 回答
3025 浏览

.htaccess - 我怎么知道这个杠杆浏览器缓存已打开?

我正在尝试在我的网站上的 images/js/css ext.. 上设置到期日期,因为我在使用Page Speed的工具中看到它将有助于提高性能:

所以我将它添加到 htaccess 并刷新了页面,仍然是(未指定到期):

我需要打开任何东西还是有办法让它工作?

0 投票
3 回答
4697 浏览

apache - 用 mod_expires 覆盖缓存头

我想使用 apache 的 mod_expires 模块设置缓存头。我的配置看起来有点像这样:

问题是,这些文件是由我无法控制的第三个系统生成的。这些系统提供具有以下标题的文件:

这些标头使得无法使用 mod_expires 设置缓存标头。http://httpd.apache.org/docs/2.2/mod/mod_expires.html告诉我们原因:

当 Expires 标头已经是服务器生成的响应的一部分时,例如当由 CGI 脚本生成或从源服务器代理时,此模块不会更改或添加 Expires 或 Cache-Control 标头。

是否有任何可能的方法来规避此规则并用 mod_expires 覆盖标头?

更新: 避免此限制的一种可能解决方案是仅使用 mod_headers 来设置缓存头。不幸的是,这不是替代方案,因为必须计算值。

提前谢谢它。

0 投票
3 回答
6791 浏览

apache - 使用 Apache 为文件系统中不存在的路径添加过期标头

出于 CDN 失效的目的,我需要在站点 URL 的路径元素中添加一个前缀。每当发布资产的新版本时,都会更改此设置。

然后使用 mod_rewrite 从http://example.com/cdn/20111030/images/image.jpghttp://example.com/images/image.jpg重写 URL,这是资产实际所在的位置。

我想在响应中添加长过期标头(至少 3 个月)(对于文件系统中实际上不存在的第一个 URL)。有谁知道如何做到这一点?