如何在 Apache 中启用过期标头

2023-10-29

Apache 是一种高度灵活、功能强大且开源的 HTTP 服务器软件,广泛用于托管网站。它的功能之一是操作响应中的 HTTP 标头,该功能可以显着提高网站的性能。

在这些操作中,启用“过期标头”是管理网站缓存行为的有效技术。本质上,过期标头告诉浏览器特定文件应该缓存多长时间。这意味着对同一文件的后续请求将从缓存中提供服务,从而节省带宽并提高站点的速度。

在本文中,我们将讨论如何在 Apache 中启用过期标头。

准备

在开始之前,您需要确保您具有 Apache 服务器的管理员访问权限,因为您需要修改 Apache 配置文件。

另外,请确保‘mod_expires’Apache 模块已启用。您可以通过运行以下命令来检查它是否已启用:

apachectl -M | grep expires 

如果模块已启用,您将看到expires_module(共享)在输出中。如果没有,您可以通过运行以下命令来启用它:

sudo a2enmod expires 

启用模块后记得重新启动 Apache:

sudo systemctl restart apache2 

在 Apache 中设置 Expires 标头

在 Apache 中启用过期标头有两种主要方法:通过主 Apache 配置文件(httpd.conf 或 apache2.conf),或通过.htaccess文件位于您网站的根目录中。

方法 1:使用 Apache 主配置文件

  1. 打开 Apache 配置文件。它的位置根据您的操作系统而有所不同。它通常位于/etc/httpd/conf/httpd.conf or /etc/apache2/apache2.conf。使用文本编辑器打开它,例如:
    sudo nano /etc/apache2/apache2.conf 
    
  2. Add the following lines to the configuration file:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <IfModule mod_expires.c>
    过期有效 On
    过期默认 “访问加 2 天”
    按类型过期 image/jpg “访问加 1 年”
    按类型过期 image/jpeg “访问加 1 年”
    按类型过期 image/gif “访问加 1 年”
    按类型过期 image/png “访问加 1 年”
    按类型过期 text/css “访问权限加 1 个月”
    按类型过期 text/html “访问加 2 天”
    按类型过期 应用/pdf “访问权限加 1 个月”
    按类型过期 text/x-javascript “访问权限加 1 个月”
    按类型过期 应用/x-shockwave-flash “访问权限加 1 个月”
    按类型过期 image/x-icon “访问加 1 年”
    </If模块>
  3. 保存并关闭文件。
  4. 重新启动 Apache 以实施更改:
    sudo systemctl restart apache2
    

方法 2:使用 .htaccess 文件

  1. 打开.htaccess文件位于网站的根目录中。如果不存在,则创建它。
  2. 将与上面相同的行添加到.htaccess file.
  3. 如果您使用的是 Apache,则无需重新启动 Apache.htaccess文件。更改立即生效。

The按类型过期指令允许您设置特定文件类型的到期时间。在上面的示例中,JPEG、JPG、GIF 和 PNG 文件设置为缓存 1 年。 HTML 文件设置为缓存 2 天,CSS 和 JavaScript 文件设置为缓存 1 个月,依此类推。

通过根据您网站所服务的文件类型自定义这些指令,您可以优化网站的缓存行为和性能。

结论

在 Apache 中启用过期标头是通过管理网站的缓存行为来提高网站性能的有效方法。通过为不同文件类型设置过期时间,您可以节省带宽并提高网站速度。请记住在实施更改后对其进行测试,以确保一切按预期工作。

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

如何在 Apache 中启用过期标头 的相关文章

  • 防止直接访问 PHP 页面

    如何防止我的用户直接访问仅用于 ajax 调用的页面 在 ajax 调用期间传递密钥似乎是一种解决方案 而没有密钥的访问将不会被处理 但制造钥匙也很容易 不是吗 查看源代码的诅咒 p s 使用 Apache 作为网络服务器 编辑 为了回答为
  • XAMPP:无法启动 Apache (Windows 10)

    我正在使用 XAMPP 并且可以启动 Apache 但是 MySQL php我的管理员 https en wikipedia org wiki PhpMyAdmin start 当我开始时 我收到此错误 10 07 49 Apache Er
  • 如何在 Linux 中获取 Apache 的“每秒请求数”?

    在 Windows for ASP 中 您可以获得 perfmon 但是 如何获得 每秒请求数 Linux 下的 Apache 这是我编写的一个简短的 bash 脚本 用于对请求率进行采样 基于迪克塞的建议 https stackoverf
  • 对于某些版本的 PHP,“未指定输入文件”

    我安装了多个版本的 PHP 我写的 基本上 它是一个 ApacheLounge 安装 在 Windows 10 上通过 FastCGI 与 PHP 进行通信 这曾经让我在不同的虚拟主机上同时运行这些 PHP 版本 Apache 通过 Fas
  • PHP MySQLi 权限被拒绝,但可以从 MySQL CLI 运行

    我收到错误 Failed to connect to MySQL Permission denied 当从 PHP 与 MySQL MySQLi 和 PDO 连接到远程 MySQL 主机时 但是 如果我从同一主机在命令行上使用相同的凭据通过
  • Symfony2 php.ini

    当检查时app check php Symfony2说这个Configuration file used by PHP etc php5 cli php ini然而phpinfo 显示 Apache 正在使用 etc php5 apache
  • 使用 Apache2 的 NodeJS 应用程序有时会返回 503 服务器不可用

    风景 我有一个乌班图18 04DigitalOcean 中的服务器具有以下规格 1 vCPUs 1GB and 25GB磁盘 在这个服务器 我们称之为 API SERVER 中 我使用 PHP 和 NodeJS 在由 apache 管理的代
  • node.js 与 Apache PHP 一起运行?

    我正在尝试了解 Node js 我对我的 LAMP 设置非常满意 因为它目前满足我的要求 虽然我想在我的 PHP 应用程序中添加一些实时功能 例如显示当前登录我的网站的所有用户以及可能的聊天功能 我不想更换我的 PHP 后端 但我确实想要可
  • 托管多个 django 站点时出现问题(设置交叉)

    我最近设置了一个 Web 服务器 目前托管着几个静态页面网站和两个 django 项目 这两个 django 项目是 abc 和 xyz 分别位于主文件夹中的不同目录中 每个都有自己的 wsgi 脚本 该脚本指向各自的 settings p
  • PHP 空 $_POST

    我通过 HTTP POST 向 PHP 发送数据 这对于短于 8MB 8192KB 的数据来说效果很好 但是当发送的数据量更大时 PHP 会显示 POST变量为空 我强调的是 POST变量甚至不包含帖子字段的名称 它作为空数组存在 临界点似
  • 使用 .htaccess 限制对文件下载的访问

    我下载了诸如product exe之类的静态文件 我想限制访问 这些文件带有 htaccess 文件 以便只有某些用户可以下载它 我认为这可以用 mod rewrite 来处理 我在网上找到了这个片段 使用引荐来源网址阻止不良网站 Rewr
  • 无法隐藏 htaccess 文件

    我很难隐藏我的 htaccess 文件 我仔细检查以确保 httpd conf 中存在以下内容
  • 如何配置 apache 查看隐藏(`.`)文件?

    如何在 apache 中显示目录列表 隐藏文件 我都尝试过
  • Lucene 的 StopFilter 中使用的默认停用词列表是什么?

    Lucene 有一个默认的 stopfilter http lucene apache org core 4 0 0 analyzers common org apache lucene analysis core StopFilter h
  • 跨子域和主机的 Cookie

    在我使用开发环境和语言组合编写的应用程序中 我需要从两个不同的子域 每个子域位于单独的主机上 访问 cookie cookie 正在设置www mydomain com使用下面的 PHP 代码 我尝试从distant mydomain co
  • Apache服务器安装失败(端口80或443已在使用)

    我有一个与 PHP 相关的问题 我是 net 开发人员 我通常使用 asp net 和 c 我在笔记本电脑上安装了 Visual Studio 和 SQL Server 现在我尝试在我的系统上安装 Xampp 服务器 这里我遇到了一些问题
  • Apache 下的子域代理到 Tomcat

    在使用 AJP 代理 Tomcat 时 我在为 Windows 计算机创建子域时遇到问题 这是我的 httpd conf 文件中的内容
  • PHP/Apache 中的输出缓冲块如何工作?

    假设我将随机数据从 PHP 回显到浏览器 随机数据总量约为 XGb 回显以 YKb 块的形式完成 不使用 ob start PHP 和 Apache 缓冲区已满后 echo 调用是否会阻塞 客户端无法以与生成数据相同的速度使用数据 如果是
  • 如何在php中重写url?

    我有一些关于在 php 中重写 url 的问题要问 1 www test com index php name 123 至 www test com 123 2 www test com folder1 index php name 123
  • 如何配置 apache 服务器与 HTTPS 后端服务器通信?

    我将 apache 服务器配置为反向代理 如果我将后端服务器指定为 HTTP 则它可以正常工作 那是 我将虚拟主机 443 配置为 ProxyPass primary store http localhost 9763 store Prox

随机推荐

  • KEIL 生成bin文件

    1 首先对于keil5其编译生成的HEX文件 一般通过勾选如下 在进行ISP烧写时 就可以通过传送HEX文件进行烧写 2 对于烧写而言不仅仅可以通过HEX文件进行烧写 还可以通过BIN文件进行烧写 且BIN文件比HEX文件更小 设置BIN文
  • Rust的内存安全三原则:所有权、借用及生命周期

    我们接下来要探讨的概念是Rust的内存安全及其零成本抽象原则的核心 它们让Rust能够在编译期检测程序中内存安全违规 在离开作用域时自动释放相关资源等情况 我们将这些概念称作所有权 借用和生命周期 所有权有点类似核心原则 而借用和生命周期是
  • 时序预测

    时序预测 MATLAB实现2 DCNN卷积神经网络时间序列预测 目录 时序预测 MATLAB实现2 DCNN卷积神经网络时间序列预测 预测效果 基本介绍 研究背景 模型结构 建模流程 程序设计 学习总结 参考资料 预测效果 基本介绍 一种基
  • Dolby与DTS杜比环绕与DTS环绕音响

    转自 http blog sina com cn s blog a15db8ae0101dlz7 html 杜比环绕与DTS环绕具有的相近之处在于它们都是属于有损的数字压缩技术 这种称为 感性的 数据压缩技术是基于人类心理声学上所具备的听音
  • AndroidStudio运行程序时启动虚拟机出现x86 emulation currently requires hardware acceleration!问题解决方法

    这个问题是没有安装intelhaxm android exe这个软件 找到 SDK安装目录 一般在C盘下C Users admini AppData Local Android Sdk extras intel Hardware Accel
  • C++:采用vector实现二分查找及其变种总结

    主要分为六种情况 闭区间 半开区间 中位值在循环之外的半开区间二分查找首个序列 中位值在循环之外的半开区间二分查找末尾序列 以及中位值在循环之外的完全开区间二分查找首个序列和中位值在循环之外的完全开区间二分查找末尾序列 include
  • 微信小游戏开发之四:使用three.js引擎

    一 前言 微信小游戏中最魔性的 跳一跳 就是基于three js 引擎开发的 看这里 不要再让我发邮箱了 源码放到github上了 GitHub地址 请自行下载 二 下载 three min js 打开页面 复制代码到本地 三 引用 使用如
  • Qt之输入对话框(QInputDialog)的相关参数(Qt::InputMethodHints)和(QLineEdit::EchoMode)学习

    本文参考文章 Qt 编程 输入对话框 QInputDialog 的使用 学习笔记 前言 QInputDialog类提供了一个简单的便捷对话框 可以从用户那里获取用户录入的单个值 当前Qt提供了五个静态接口函数用于获取常用的数据类型参数 单文
  • 【华为OD机试真题2023 JS】上班之路

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 上班之路 知识点BFS搜索广搜 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 Jungle生活在美丽的蓝鲸城 大马路都是方方正正 但是每天马路的封闭情况都不一样
  • 在 Bash 中获取明天的日期:实用演练

    在系统管理和 shell 脚本世界中 操作日期和时间的能力至关重要 无论是用于计划任务 日志轮换还是简单地为文件添加时间戳 了解如何在脚本中使用日期都可以节省大量时间和精力 Bash Bourne Again Shell 为此提供了一组强大
  • 使用 PHP 和 Docker 设置开发环境

    本地开发环境对于 PHP 开发人员测试和调试应用程序至关重要 传统上 开发人员会依赖 XAMPP MAMP 或 WAMP 等工具 它们为本地开发提供成熟的 LAMP 堆栈 Linux Apache MySQL PHP 然而 随着应用程序变得
  • 如何使用 Iptables 在 Linux 中阻止 IP 地址

    Iptables 是 Linux 操作系统中内置的强大且灵活的防火墙工具 它用于建立 管理和配置IP数据包过滤规则表 Iptables 的常见用途之一是阻止或限制来自特定 IP 地址或 IP 地址范围的访问 本文提供了有关如何使用 Ipta
  • 如何在 Python 中创建和读取列表

    Python 是一种流行的编程语言 具有广泛的应用范围 包括数据科学 Web 开发和自动化 Python 中最基本 最重要的数据结构之一是列表 列表是值或项目的集合 可以是任何数据类型 包括字符串 整数 浮点数 甚至其他列表 在本文中 我们
  • 如何在 MacOS 上安装 Golang

    Go 是 Google 于 2009 年开发的一种编译型编程语言 由于其性能 可读性和简单性 它在软件开发行业中广受欢迎 Go 是一种通用编程语言 它的代码片段感觉很自然 与 C 或 Java 等其他语言相比 它可以用更少的代码行编写 Go
  • 什么是 Apache Prefork、Worker 和 Event MPM(多处理模块)

    Apache 是最流行的 Linux Web 服务器 大多数Linux系统管理员的学习阶段都是从Apache httpd Web服务器开始的 甚至我在学习过程中也使用过Apache Web服务器 在初始级别 系统管理员使用 Apache 他
  • 如何在 Debian 8 上安装 Ansible (Jessie)

    Ansible 是一种自动化工具 用于从单台计算机管理多个远程主机 它为您提供了针对大量远程主机的轻松配置 例如 您在多台机器上执行相同的任务 Ansible 为您提供了自动执行这些任务的选项 本教程将帮助您在 Debian 8 Jessi
  • Ubuntu 和 Debian Linux 中的 12 个 Apt 命令示例

    apt 命令是 Linux 操作系统中最强大 最通用的工具之一 它为用户提供了一个功能强大且易于使用的包管理系统 可用于轻松管理和安装软件 使用 apt 命令 用户可以快速轻松地从系统中搜索 安装 升级和卸载软件应用程序 本指南详细概述了
  • Linux 中的排序命令及实例

    The sort Linux 中的命令是 GNU Coreutils 包的一部分 此命令用于按升序 降序对指定文件或标准输入中的文本行进行排序 排序后的输出可以写入文件或显示在标准输出上 这 sort 命令是一个简单而强大的工具 可用于各种
  • 使用.nvmrc指定节点版本

    您可以使用特定的 Node js 版本锁定您的应用程序 这将帮助您隔离 Node js 应用程序的依赖关系 因此您可以在任何系统上快速安装所需的软件包 在本教程中 您将学习使用 nvmrc 文件指定 node js 版本的简单过程 使用 n
  • 如何在 Apache 中启用过期标头

    Apache 是一种高度灵活 功能强大且开源的 HTTP 服务器软件 广泛用于托管网站 它的功能之一是操作响应中的 HTTP 标头 该功能可以显着提高网站的性能 在这些操作中 启用 过期标头 是管理网站缓存行为的有效技术 本质上 过期标头告