【问题标题】:Set expires headers without enabling mod_expires or mod_headers possible in php?设置过期标头而不启用 php 中的 mod_expires 或 mod_headers 可能?
【发布时间】:2017-02-05 04:02:50
【问题描述】:

我正在用 php 构建一个留言簿。当我使用 SEO 检查器检查页面时,它说我应该设置过期标题。这是我第一次使用 expires 标头,我尝试将它们添加到 .htaccess 文件中,但由于服务器上既没有 mod_expires 也没有 mod_headers ,我将无法更改它。我的问题是,是否有可能在我的 php 代码中设置这些过期标头而无需打开 mod_expires 或 mod_headers?如果是这样,我将如何在我的代码中实现它才能正常工作?如果你想给我答案“with header(....)”请解释如何设置它以及把它放在哪里,我不只是想复制粘贴代码,我想学习如何做它。

我想为我的样式表 (css) 设置图片 (jpg/jpeg/gif/png) 的过期标题(如果可能的话)。

下面我列出了我已经检查过的 StackOverflow 上的问题,但其中一些对于像我这样的新手来说真的很难理解,或者他们永远不会真正得到答案。他们中的一些人从不说在哪里实现代码 sn-ps,这使得很难使用公认的答案。

我对网页编程很陌生,所以请写下为什么我应该做什么,以便我将来学习它。如果您需要更多信息,请不要犹豫,在 cmets 中写下。我会尽我所能回答。谢谢。

(已检查的问题:

)

PHP 版本:7.0.10

(PS:我不知道为什么mod_headers和mod_expires没有开启,但我相信公司不会为了我的小项目而改变它。)

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:

    您不能在不涉及 PHP 的情况下使用 PHP 进行设置。通常您的网络服务器提供图像和静态文件,因此网络服务器必须为您处理过期标头。所有其他的事情,例如使用 PHP 提供图像,真的不推荐使用,并且需要做更多的工作,而不仅仅是正确配置网络服务器。

    因此,静态文件(图像、javascript 等)的过期标头由您的网络服务器管理,而不是 PHP。

    提示:大多数默认虚拟主机服务都安装了 apache,因此您可以使用 .htaccess 文件正确设置这些内容。

    编辑,更多解释: 您必须区分要设置过期标头的文件。当然,您也可以在 PHP 文件中设置过期标头,但这只会影响从 PHP 提供的页面。而php主要用于显示动态网页,所以这里的expire header是没有意义的。静态图像和所有这些文件永远不会传递给 PHP,因此您必须在网络服务器配置中设置过期时间。并且由于图片和其他静态文件是不会更改(或不经常更改)的静态文件,因此建议设置过期标头以允许浏览器正确缓存它

    【讨论】:

    • 那你为什么要在第一时间设置过期标题呢?为什么在某些答案中我看到他们在 php 中设置了过期标头?此外,我已经写过我尝试使用 .htaccess 文件,该文件不起作用,因为 mod_expires 和 mod_headers 都没有启用......
    • @Kathara 您必须区分要设置过期标头的文件。当然,您也可以在 PHP 文件中设置过期标头,但这只会影响从 PHP 提供的页面。而php主要用于显示动态网页,所以这里的expire header是没有意义的。静态图像和所有这些文件永远不会传递给 PHP,因此您必须在网络服务器配置中设置过期时间。由于图像和其他静态文件是static 不会更改(或不经常更改)的文件,因此建议设置过期标头以允许浏览器正确缓存它。
    • 感谢您的澄清。如果没有 mod_expires 或 mod_headers,您不会知道任何其他设置过期标头的方法吗?
    • @Kathara 使用 apache,据我所知没有其他方法。如果您的托管服务提供商不支持该功能并且不会为您提供此类功能,我建议您切换。这是每个提供商都应该提供的基本内容。
    • 非常感谢您的帮助。当您帮助我澄清这一点时,我会将您的答案标记为正确。我看看能不能让我的公司帮我在服务器上安装 mod_expires 和 mod_headers。
    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2012-04-13
    • 2012-09-02
    • 2015-07-29
    相关资源
    最近更新 更多