标签: mod-expires

mod_expires或mod_headers?

这个页面说明了这个:

如果响应包括Expires头和max-age指令,则max-age指令会覆盖Expires头,即使Expires头更具限制性

似乎mod_expires和mod_headers都在我的服务器中处于活动状态.
哪一个更可取,你能评论每个人的优势吗?
谢谢.

apache mod-expires browser-cache mod-headers

5
推荐指数
1
解决办法
4143
查看次数

Apache 不会为 PHP 脚本设置标头

这个.htaccess文件:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 4 month"
</IfModule>
<IfModule mod_headers.c>
    Header merge X-ModHeaders "Yes, it is installed"
</IfModule>
Run Code Online (Sandbox Code Playgroud)

...在我的开发框(Windows框,Apache/2.4.10,PHP作为Apache模块运行)中按预期工作,其中“有效”意味着它为所有资源(静态或动态)生成适当的标头。

但是,在我的生产服务器(Linux 机器,Apache/2.2.31,PHP 作为 FastCGI 与 mod_fcgid/2.3.9 运行)中,它仅适用于静态资产,不适用于 PHP 脚本。

我怀疑差异来自 PHP SAPI 是否正确?有没有办法修复它,这样我就不需要复制生成 HTTP 标头的代码?

php apache mod-fcgid mod-expires mod-headers

5
推荐指数
1
解决办法
3368
查看次数

.htaccess:缓存控制,我该如何处理网站更新?

我只是在网上搜索,但找不到一个好的答案:

FF的Google页面速​​度扩展告诉我在我的网站上缓存文件(PHP).因此,我更新了我.htaccess(在我的网站测试版区域)以缓存某些类型的文件:

ExpiresActive On
ExpiresDefault A0
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

在beta区域进行编码时,我注意到由于缓存控制设置,我需要按下F5以获取最新的.css文件.这对我来说并不坏......但用户呢?

因此,当我更新我的网站(或文件过期)时,我可以告诉浏览器重新下载所有文件(如果没有),并使用缓存吗?

如果我可以告诉浏览器,这将是完美的:"嘿,更新时间之前的所有文件都是旧的,请重新下载它们 - 但是更新时间之后的文件没问题,请使用缓存."

php .htaccess cache-control mod-expires

4
推荐指数
1
解决办法
2945
查看次数

Expires指令 - 修改基本VS Access base

据我所知:

ExpiresByType text/html "access plus 30 days"
Run Code Online (Sandbox Code Playgroud)

在存储内容模具30天后,将使浏览器缓存请求新鲜内容.

但是:

ExpiresByType text/html "modification plus 30 days"
Run Code Online (Sandbox Code Playgroud)

浏览器缓存将在LAST MODIFIED HEADER的帮助下知道在修改30天之前不要求新鲜内容.

所以我的问题是,为什么不一直使用修改基础,因为它似乎更有意义,或者是否有我遗漏的东西?

apache .htaccess mod-expires browser-cache

3
推荐指数
1
解决办法
976
查看次数

PHP session_start()会覆盖HTTP Expires标头

我试图通过使用mod_expires将expire标题设置为访问text/html的2小时:

<IfModule mod_expires.c>
   ExpiresActive on
   ExpiresDefault "access plus 2 hours"
   ExpiresByType text/html "access plus 2 hours"
</IfModule>
Run Code Online (Sandbox Code Playgroud)

但是当与PHP一起使用时:

session_start();
Run Code Online (Sandbox Code Playgroud)

Expires标头正在重置为:

Expires: Thu, 19 Nov 1981 08:52:00 GMT
Run Code Online (Sandbox Code Playgroud)

任何想法如何避免被覆盖session_start()

php session mod-expires http-headers

2
推荐指数
1
解决办法
1618
查看次数

如何设置Mod字体过期

我想设置字体的有效期。以下定义无效apache 2.2.15

ExpiresByType application/x-font-woff       "access plus 1 month"
ExpiresByType application/font-woff2         "access plus 1 month"
Run Code Online (Sandbox Code Playgroud)

apache mod-expires

2
推荐指数
1
解决办法
4025
查看次数

W3C验证程序未加载实际源

我想使用W3C验证程序来优化我的Wordpress博客。在主页上,它声称存在28个错误。例如,其中之一是以下内容:

第28行,第53列:省略了“元”的结束标记,但指定了OMITTAG NO

 <meta name="DC.Creator" content="Raffael Herrmann">
Run Code Online (Sandbox Code Playgroud)

所以我修复了它,然后单击revalidate。但是,验证者说,此错误仍然存​​在。但是,如果我从Web浏览器查看浏览器的源代码窗口,则可以看到更改成功交付。如果我在W3C验证器选项中选中“显示源代码”并重新加载我的网站,我可以看到验证器使用的来自我网站的源代码已过期/未更改。

因此,有人可以向我解释为什么W3C验证程序无法识别我的更改吗?如果你wan't看看自己- http://code-bude.net/是我的博客的网址。

wordpress w3c caching w3c-validation mod-expires

1
推荐指数
1
解决办法
707
查看次数

即使我添加了它们,yslow仍然没有在apache httpd中给我一个A for expires标头

尝试将ExpiresDefault ExpiresByType添加到我的网站上的内容,以便缓存它.我在Javascript,CSS和图像的URL(路径中的修订号)中使用cachebusting,这样我就可以将这些mimetypes设置为永久.我在apache httpd中设置了以下规则:

  ExpiresActive On
  ExpiresDefault "access plus 1 minutes"
  ExpiresByType image/gif "access plus 10 years"
  ExpiresByType image/png "access plus 10 years"
  ExpiresByType image/jpeg "access plus 10 years"
  ExpiresByType image/jpg "access plus 10 years"
  ExpiresByType text/javascript "access plus 10 years"
  ExpiresByType text/css "access plus 10 years"
Run Code Online (Sandbox Code Playgroud)

然后,当我访问我的网站http://karmerd.com并使用httplive标题来查看标题时,我得到了我认为应该是正确的exps for css:Expires:Sun,03 Feb 2019 17:52:48 GMT

但我使用雅虎的Yslow firebug扩展,它仍然给我一个不使用Expires的F!难道我做错了什么?我也在我的网站上使用gravatars,但他们有Expires设置.好像一切都过期了.是Yslow还是我?

apache yslow mod-expires http-headers

0
推荐指数
1
解决办法
3080
查看次数