问题标签 [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.
wordpress - 通过 .htaccess 从“过期”标题中排除 URL
这是我对mod_expires加上相关的RewriteRule的设置。他们完美地工作!但我有一个特定的 URL,不应被缓存。正则表达式将是^/?nocache/
. 现在该目录 ( /nocache/
) 甚至在物理上都不存在;对它的请求 - 对于所有其他目录 - 由“index.php”处理。
我的第一个想法是<LocationMatch>
在它周围添加一个,但是文档说,在“.htaccess”上下文中是不允许的。A<FilesMatch>
将被允许,但需要文件物理存在,我认为((真的?))。
有任何想法吗?
php - 覆盖 .htaccess 缓存标头的 PHP 配置
我一直在尝试为我的站点的静态文件(如 jpg、png、css 等)设置缓存,但到目前为止没有成功,我发现 PHP 的配置正在接管 .htaccess 是配置。
我已经验证了 mod_expires.so 在我的 httpd.conf 中没有被注释。
我尝试在 .htaccess 中关注但徒劳无功。
甚至尝试没有成功
然后我发现我的 php.ini 已将session.cache_limiter = nocache
其更改为,session.cache_limiter = public
并且session.cache_expire=180
在更改 php.ini 中的此配置并重新启动 apache 后,我发现图像的响应标头更改如下
我想要做的是缓存图像和 css/js 文件以供“访问加 1 个月”
任何建议表示赞赏。
.htaccess - 具有 Expires 和 Cache-Control 标头的静态 CSS/JS 文件不会缓存在浏览器中
我已经设置了所有图像和 css/js 文件的浏览器缓存。尽管如此,当我在网络面板下查看浏览器的 Web 开发人员工具时,似乎每个缓存的文件都是从服务器检索的。
这就是我的 .htaccess 中的内容:
对于像https://www.fiveroasters.de/wp-includes/css/dashicons.min.css?ver=3.9.2这样的 CSS 文件,这会产生以下标题:
这在我看来是正确的,浏览器仍然没有缓存它,但每个请求仍然会导致完整下载(http 代码 200)。JS,图像等也是如此。为什么?您可以自己查看https://www.fiveroasters.de
(我在 webtools 设置下启用了缓存设置。)
lighttpd - 如何在 lighttpd 中使用 mod expire
我有网站在 lighttpd 上运行,我在这里运行了一些测试:https ://developers.google.com/speed/pagespeed
我得到 89 分,但谷歌说:
某些 css 文件的“使用 HTTP 标头”。
那么我该怎么做,或者我可以将缓存放在 htaccess 文件中吗?以及我如何将这些放在那里,因为我对 lighttpd 非常陌生。
谢谢你。
wordpress - 无法让 mod_expires 在 EC2 Bitnami 图像上工作
我一直无法成功让客户的网站设置过期。他们在 EC2 实例上运行 bitnami 云映像。我尝试过的事情:
- 1. 使用 httpd.conf 将 mod_expires 模块加载到 apache 中
- 具体来说:“LoadModule expires_module modules/mod_expires.so”
- 2.使用wordpress插件“W3 Total Cache”
- 该插件无法检测到 mod_expires 模块,但我相当确定它与 bitnami 一起提供
- 3.直接编辑.htaccess
- 在 ExpiresDefault 上使用 ExpiresActive“访问加 90 天”
- 4.教程在这里:http://www.theitbaby.com/wordpress/2013/10/14/optimizing-bitnami-for-pagespeed-insights-and-gtmetrix/
奇怪的是,当我使用上述教程中提供的代码时,apache 会抱怨给我一个错误,说 ExpiresByType 需要两个参数。当我将“访问加 9 个月”更改为“A2592000”时,它似乎又恢复了工作。
我别无选择,希望渺茫。有任何想法吗?
解决方案: 1)配置 .htaccess 以使用 mod_expires [可以在这里看到] http://www.inmotionhosting.com/support/website/htaccess/apache-module-mod-expires) 2)将 httpd-app.conf 更改为使用 AllowOverride All
apache - htaccess / mod_expires - 缓存特定文件
好的,我检查了很多网站关于如何用文件管理浏览器的缓存.htaccess
,但我仍然不太清楚。
我想将特定文件缓存一个月。其余的,我希望它每次都刷新。所以我尝试了:
但它并没有完全按预期工作......
HTML 未正确缓存,但jquery-ui.css
应缓存 1 个月的特定文件也未缓存。
无论如何,这.htaccess
对你来说似乎还可以吗?
apache - vBulletin 内容不更新 - mod_expires/Apache 问题?
很抱歉这个问题很长。我已经对此进行了一段时间的故障排除,并认为我会分享所有内容。
我正在运行 vBulletin 5.1.5(不要为此为难),我正在尝试找出问题是 vBulletin 软件还是 Apache 问题。
系统:vBulletin 5.1.5、Apache 2.4.7、mod_expires、memcached
无论本地浏览器如何(Chrome 和 Firefox 都这样做),都会出现此问题。
我刚刚从 vBulletin 5.1.4 升级到 5.1.5,之后立即开始出现此问题。vBulletin 说这是一个 Apache 服务器问题,他们只会将内容/标题设置为无缓存,或者不理会它。
如果有人对某个主题发表了回复,然后返回到主论坛页面,则新回复不会显示为最新回复(主题仍显示 0 条回复)。如果他们随后返回线程,则在他们刷新页面之前不会显示回复。
我们已经清除了 vBulletin 系统缓存,删除了该域的所有 cookie 并清除了本地缓存。
通过 Chrome 开发人员工具(网络选项卡),我看到以下内容:
页面更新后,vBulletin 不应该重置 HTTP 标头中的 Date: 吗?
我在世界标准时间 15:12:05 发布原始帖子。我在世界标准时间 15:12:10 后立即回复。页面 HTTP 标头仍将 Date: 显示为 15:12:05 UTC。我离开页面并转到主论坛页面,然后返回帖子。它仍然显示 HTTP Header Date: 为 15:12:05 UTC,直到我刷新它。所以..客户没有被告知页面有更新。这是由 vBulletin 设置的,不是吗?由于页面是动态创建的?
我在配置文件中打开了调试并查看了时间戳((在每个渲染页面的底部由 vbulletin 生成):
初始帖子 - 当前时间:星期三,2015 年 2 月 4 日 11:31:39 -0500 评论后 - 当前时间:星期三,2015 年 2 月 4 日 11:31:39 -0500 点击论坛链接 - 当前时间:星期三,2015 年 2 月 4 日 11 :31:03 -0500 点击刷新 - 当前时间:星期三,2015 年 2 月 4 日 11:33:12 -0500 再次点击主题 - 当前时间:星期三,2015 年 2 月 4 日 11:31:39 -0500 点击刷新 - 当前时间: 2015 年 2 月 4 日,星期三 11:35:15 -0500
请注意,当我点击论坛链接时,我会回到过去(即使我已经发了一个新帖子)。我刷新,我们回到当前时间。
然后,当我再次单击该主题时,时间戳与最初的发布时间相匹配——而不是我发表评论后的时间。再一次,我刷新,我们回到当前时间,回复显示。
查看日志:
- 我点击新线程 GET /forums/new-content/44 HTTP/1.1
- 我发帖 POST /forums/create-content/text/ HTTP/1.1
- 页面刷新 GET /forums/forum/general/test-forum/28305-this-is-another-new-topic
- 我添加回复 POST /forums/create-content/text/ HTTP/1.1
- 回复显示 POST /forums/create-content/loadnode HTTP/1.1
- 我去帖子的父论坛 GET /forums/forum/general/test-forum HTTP/1.1
- 我点击帖子,页面显示和一个 POST /forums/ajax/api/node/incrementNodeview HTTP/1.1 然后 GET /forums/foru...-another-testt HTTP/1.1
一切都有一个状态码 200。第 6 项和第 7 项有一个 Cache-Control: max-age=3600 和原始帖子的日期和时间。
也许我不确定服务器和客户端之间的到期如何工作?从客户端到服务器的过程不应该是......拉下原始页面并在本地缓存它。稍后请求同一页面,向服务器发送请求以获取标头以查看页面是否有新时间,如果匹配则拉取本地副本,如果不匹配则发送新副本。Apache 不知道页面是否已更新 - 这是由 vBulletin 生成的,对吗?
有什么想法吗?
http - 过期而不是 Max-Age
我们正在使用 Google Page Speed Tool。
它说我们应该对图像使用“利用浏览器缓存”。
在 httpd.conf 中,我们使用 1 个月的“ExpiresByType”。
图像响应中的“max-age”设置为 1 个月,但“Expires”设置为 1 天。
谷歌页面速度忽略了“Max-age”并解释了“Expires”,从而给出了警告。
我们如何通过 Mod_expires 设置“Expires”而不是“Max-age”?
apache - apache mod_expire 不起作用
我已按如下所述配置了 Apache mod_expire,但它不起作用。
我在 .htaccess 文件中添加了这个块: ExpiresActive On ExpiresDefault A900 ExpiresByType text/html A1800 ExpiresByType text/css A604800 ExpiresByType text/javascript A604800 ExpiresByType text/javascript A604800 ExpiresByType text/x-json A604800 ExpiresByType image/gif A2419200 ExpiresByType image/png A2 ExpiresByType 图片/jpg A2419200
我试过用 texrt "allow plus 1 mounth" 替换符号 A2419200 但这也行不通。
我还尝试从 .htaccess 文件中截取此部分并将其保存在单独的文件 expire.conf 中并保存在目录 conf.d 中 - 也没有工作
如果我评论块
我有 500 错误,但命令httpd -M (已加载模块列表)显示:
所以 mod_expire 被加载。
我做错了什么?
我的 httpd.conf 文件(我被删除评论):
我的 .htaccess 文件:
.htaccess - .htaccess / mod_expires not working for sub directory
.htaccess
file in the root directory and it is working perfectly fine for desktop users as the files for the desktop site are in the root directory but as for my mobile site the .htaccess
file does not seem to work as the mobile site files are in a sub directory named m
.
So basically I'm trying to add this code in .htaccess
file
And when I check Google page speed test its working perfectly for desktop site but as for mobile it isn't so do I have to make a separate .htaccess
file for the sub directory and if yes what do I have to add in that or can I just edit the current one so that it starts working for that m
sub directory?