利用浏览器缓存,在 apache 或 .htaccess 上如何?

2024-03-23

在这里做什么?我有一个巨大的文件列表,Google Speed Page 说“利用浏览器缓存”..但我不知道如何?我是否会弄乱或更改 Apache 配置文件(如下),或者是否在 .htaccess 页面中放置了某些内容?

 <IfModule mod_proxy.c>
        ProxyRequests Off
        CacheRoot "/var/run/proxy"
        CacheSize 1024
        CacheGcInterval 24
    #CacheMaxExpire 24
    #CacheLastModifiedFactor 0.1
    #CacheDefaultExpire 1
    #NoCache a_domain.com another_domain.edu joes.garage_sale.com
        <Directory "disabled_proxy">
            Allow from example.com
            Deny from all
            Order Deny,Allow
        </Directory>
    </IfModule>
    ##
    #### mod_expires is configured so that all static files but images
    #### expire after 60 seconds. Any response that has a life span of more
    #### than 5 seconds (see webperfcache.conf) will be cached by webperfcache.
    #### Make sure your CGIs return a "Cache-Control: no-cache" header if you
    #### elect to make your dynamically generated HTML pages not cache-able.
    #### If all your HTML pages are static you may also increase ExpiresDefault.

    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault A60
        ExpiresByType image/bmp A3600
        ExpiresByType image/gif A3600
        ExpiresByType image/ief A3600
        ExpiresByType image/jpeg A3600
        ExpiresByType image/png A3600
        ExpiresByType image/tiff A3600
        ExpiresByType image/x-cmu-raster A3600
        ExpiresByType image/x-portable-anymap A3600
        ExpiresByType image/x-portable-bitmap A3600
        ExpiresByType image/x-portable-graymap A3600
        ExpiresByType image/x-portable-pixmap A3600
        ExpiresByType image/x-rgb  A3600
        ExpiresByType image/x-xbitmap A3600
        ExpiresByType image/x-xpixmap A3600
        ExpiresByType image/x-xwindowdump A3600
        ExpiresByType audio/basic A3600
        ExpiresByType audio/midi A3600
        ExpiresByType audio/mpeg A3600
        ExpiresByType audio/x-aiff A3600
        ExpiresByType audio/x-pn-realaudio A3600
        ExpiresByType audio/x-pn-realaudio-plugin A3600
        ExpiresByType audio/x-realaudio A3600
        ExpiresByType audio/x-wav A3600
        ExpiresByType video/mpeg A3600
        ExpiresByType video/quicktime A3600
        ExpiresByType video/x-msvideo A3600
        ExpiresByType video/x-sgi-movie A3600
    </IfModule>

我抓住机会提供完整的.htaccess传递 Google PageSpeed Insight 的代码:

  1. 启用压缩
  2. 利用浏览器缓存
# Enable Compression
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
</IfModule>
<IfModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

# Leverage Browser Caching
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access 1 year"
  ExpiresByType image/jpeg "access 1 year"
  ExpiresByType image/gif "access 1 year"
  ExpiresByType image/png "access 1 year"
  ExpiresByType text/css "access 1 month"
  ExpiresByType text/html "access 1 month"
  ExpiresByType application/pdf "access 1 month"
  ExpiresByType text/x-javascript "access 1 month"
  ExpiresByType application/x-shockwave-flash "access 1 month"
  ExpiresByType image/x-icon "access 1 year"
  ExpiresDefault "access 1 month"
</IfModule>
<IfModule mod_headers.c>
  <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$">
  Header set Cache-Control "max-age=2678400, public"
  </filesmatch>
  <filesmatch "\.(html|htm)$">
  Header set Cache-Control "max-age=7200, private, must-revalidate"
  </filesmatch>
  <filesmatch "\.(pdf)$">
  Header set Cache-Control "max-age=86400, public"
  </filesmatch>
  <filesmatch "\.(js)$">
  Header set Cache-Control "max-age=2678400, private"
  </filesmatch>
</IfModule>

还有一些针对各种Web服务器的配置请参见here https://github.com/hyipscript/server-configs.
希望这有助于获得 100/100 分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用浏览器缓存,在 apache 或 .htaccess 上如何? 的相关文章

  • 运行没有扩展名的 PHP 页面

    我想在 apache Web 服务器上运行我的 PHP 网页 而不需要 php扩大 所以我添加了以下代码 RewriteEngine on RewriteBase Rewritecond REQUEST URI NC RewriteRule
  • 为什么我不能在 TCPDF 表中使用 č,ć,đ 图表?

    我正在为我的网站构建一个 tcpdf 文件 该 tcpdf 文件中有一个包含一些数据的表格 但我无法使该章程正常工作 对于编码 我使用 windows 1250 宪章女巫不起作用 我已经尝试过 utf 8 但仍然没有得到这个章程 tcpdf
  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • 使用 php 获取当前月份的最后 3 个月

    我想获取当前月份最近 3 个月的名称 例如当前月份是八月 所以 我想要六月 七月 八月这样的数据 我已经尝试过这段代码echo date F strtotime 3 months 它只返回六月 如何使用 php 获取当前月份的最后 3 个月
  • 通过 __get() 通过引用返回 null

    快速规格 PHP 5 3 error reporting 1 the highest 我正在使用 get 通过引用技巧神奇地访问对象中任意深度的数组元素 快速示例 public function get key return isset t
  • 重写规则,以便正确加载具有绝对路径的 css 和 js 文件

    我花了两个小时 但我无法弄清楚 我不知道如何谷歌解决方案 这是我在 htaccess 文件中的重写规则 RewriteCond REQUEST URI blog RewriteRule blog http localhost 2368 1
  • Apache 从子域重写为 www 但保留所有永久链接

    我已经研究了大约 2 个小时 虽然大多数主题都很相似 但没有一个解释如何做我想做的事情 我正在将一个结构为 blog domain com 的博客移至 www domain com blog 当我重定向时 我需要保留博客文章的永久链接 所以
  • 在 Laravel 5 中截断表

    描述 我有一个充满测试数据的表 有时 我想清除它以获取新数据 我可以在 DBMS 应用程序中执行截断 例如MySQL 工作台 但我试图在我的应用程序中实现它 Goal 创建一个按钮 单击时截断数据库中的表 这是我的步骤 1 声明一条路线 R
  • 负载平衡集群中的 PHP 会话 - 如何?

    好的 我得到了这个完全罕见的负载平衡 PHP 网站的独特场景 令人遗憾的是 它过去没有进行负载平衡 现在我们开始遇到问题 目前唯一的问题是 PHP 会话 当然 一开始没有人想到这个问题 因此 PHP 会话配置保留为默认值 因此 两台服务器都
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • Laravel 5 中的自定义验证器

    我正在将 Laravel 应用程序从 4 升级到 5 但是 我有一个自定义验证器 但无法运行 在L4中 我做了一个验证器 php文件并将其包含在全局 php using require app path validators php 我尝试
  • WordPress 分页自定义帖子类型

    我有一个名为 新闻 的页面 使用页面模板page newslist php 它应该显示来自自定义帖子类型 也称为新闻 的帖子 我意识到两者具有相同的名称会导致问题 因此在注册自定义帖子类型时 我进行了重写以将其与页面区分开来 rewrite
  • 强制 Composer 下载 git repo 而不是 zip

    我对作曲家有一些问题 require php gt 5 3 2 kriswallsmith buzz 0 7 Repo https github com kriswallsmith Buzz tree v0 7 https github c
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • 如何在 Zend Framework 3 中注册自定义表单视图助手

    我正在将继承的 Zend Framework 2 应用程序迁移到 Zend Framework 3 并且在注册自定义表单视图助手时遇到了一些困难 这些助手在应用程序使用版本 2 时起作用 主要用于添加标签属性以实现可访问性 例如 这是一个自
  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中

随机推荐

  • vb.net 向存储过程发送参数

    你好 这是我在 vb net 中使用 ms Visual Studio 2010 的第一个项目 我想创建一个可以将参数发送到 transact sql 数据库中的存储过程的类 我知道如何在 vb 6 中执行此操作 但我不会确定这是否是在这里
  • 为什么我应该使用 (y,x) 而不是 (x,y) 来访问 opencv 中的像素?

    我必须使用 openCV 访问图像中的像素 但一开始我无法访问 因为 python 告诉我我想要访问的值超出范围 然后我搜索了这个错误 我发现我应该使用访问像素image y x 代替image x y 我在这个页面的评论中找到了这条信息
  • 自定义 jquery ui 日期选择器

    是否可以完全定制jquery ui http jqueryui com home日期选择器以匹配您的网站主题 包括标题 按钮和图像的位置 如果可能的话 应该采取什么方法 该怎么办呢 我想 几乎 完全重新设计它 还有哪些其他可能的选择 我尝试
  • 未处理的 Win32 异常

    在运行时 当 myApp exe 崩溃时 我收到 未处理的 Win32 异常 但我如何知道发生了哪个异常 哪里出了问题 对于 Native C 应用程序 请参阅我之前的回答 在 Windows 上检测 重定向核心转储 当软件崩溃时 http
  • 无法使用“PhpParser\Node\Scalar\String”作为类名,因为它是保留的

    当我使用 Composer 安装 Laravel 5 时 出现以下错误 无法按原样使用 PhpParser Node Scalar String 作为类名 保留在 Applications XAMPP xamppfiles htdocs l
  • ggplot2 在函数 R 内时似乎不起作用 [重复]

    这个问题在这里已经有答案了 我对 R 有点陌生 我一直在尝试将 R 脚本包装为函数 以便我可以从 Rserve 调用它 有谁知道为什么 ggplot2 不能在函数内部工作但在函数外部却工作得很好 png polarity png ggplo
  • 围绕其中心点旋转 UIImageView?

    我在 UIImageView 中有一个透明的 png self myImage 我想绕其中心点旋转 代码应该非常简单 self myImage layer setAnchorPoint CGPointMake 0 5 0 5 UIView
  • 在 Win64 下将 SOCKET 转换为 int 安全吗?

    我正在开发 POSIX C 程序的 Windows 端口 问题是标准 POSIX 函数 如accept 或bind 期望 int 作为第一个参数 而其WinSock 对应函数则使用 SOCKET 当编译为 32 位时 一切都很好 因为两者都
  • 获取图像大小而不将图像加载到内存中

    据我所知 您可以通过以下方式使用 PIL 获取图像大小 from PIL import Image im Image open image filename width height im size 但是 我想获取图像的宽度和高度witho
  • 使用 GStreamer 将视频转换为 WebM

    文档用于GStreamer令人困惑 这仍然不是诉诸的借口StackOverflow com 但仍然 是什么GStreamer命令行将任何视频文件 任何格式 转换为 WebM WebM 音频 这是我能找到的唯一带有示例的文档 http gst
  • 使用随机字段解析 JSON (java)

    我想转换一个JSON文件到一个CSV file My JSON文件来自DataBase存储在Firebase并且有这样的结构 PATIENT LbhwHC7Y6 umc age 31 name Phoebe LbhwTFJ6xjEf age
  • 更改 PHP 文件上传的默认临时目录

    我正在本地制作一个网站 允许上传 pdf 文件 当这些文件在本地上传时 它们会转到C xampp tmp但是当我在大学服务器上托管该网站时 我无权访问临时目录 有什么方法可以更改文件的默认临时位置吗 提前致谢 戴夫 可以使用以下命令配置上传
  • 使用 GtkAda 发出信号

    我担心的是我创建了一个回调函数 它应该显示Gtk Entry当我们点击Gtk Button但当我点击按钮时什么也没有发生 我不明白 File ads Package Test is Type T Test is record Contene
  • 在 EasyPHP{WAMP} 中设置 root 密码后无法从 phpMyAdmin 访问 MySQL

    首次启动 MySQL 成功设置后 出于安全原因 页面提示我设置 ROOT 密码 设置密码后 我无法再访问 MySQL 错误是 1045 Access denied for user root localhost using password
  • Asift 和 openCV?

    opencv 允许使用 ASIFT 吗 http www ipol im pub algo my affine sift http www ipol im pub algo my affine sift 作者发布了c 所以我相信将其实现到o
  • 弹性框文本项溢出

    谁能解释一下为什么包含文本的列的宽度没有正确计算以完全包含每列中的文本 在 Firefox 和 Chrome 上 第一列和第三列中的文本不适合这些框 但令人惊讶的是 这些框在 IE 11 中的大小正确 这是浏览器错误吗 box displa
  • Windows 服务 + Windows 窗体应用程序。一个数据库。关于并发的建议

    我有包含文件信息的 SQL Server 数据库 我正在谈论自定义属性 这些是每个文件的类别和描述 Windows 窗体应用程序是供用户使用的 但我还将创建一个 Windows 服务来跟踪文件的任何更改 如果发生更改 重命名 移动 删除 服
  • ASP.NET Core 1.0 中的 AWS Elastic Beanstalk 环境变量

    如何将环境变量从 Elastic beanstalk 获取到 asp net core mvc 应用程序中 我添加了一个 ebextensions 文件夹 其中包含 app config 文件 其中包含以下内容 option setting
  • 将值添加到弧

    我正在尝试向 arc 添加值并为此目的制定了一种方法 然而 即使 for 循环给出了不同的坐标 它们看起来也都在一个地方 可能是什么问题 this RangeEnd 是 float 200 这是添加值的方法 private void OnD
  • 利用浏览器缓存,在 apache 或 .htaccess 上如何?

    在这里做什么 我有一个巨大的文件列表 Google Speed Page 说 利用浏览器缓存 但我不知道如何 我是否会弄乱或更改 Apache 配置文件 如下 或者是否在 htaccess 页面中放置了某些内容