我在php中建立一个留言簿。当我用SEO检查器检查页面时,它说我应该设置expires头。这是我第一次使用expires标头,我尝试将它们添加到.htaccess文件中,因为服务器上的mod_expires和mod_headers都没有打开,因此我赢了&#39 ; t能够改变它。我的问题是,如果有可能在我的PHP代码中设置这些expires头而没有mod_expires或mod_headers?如果是这样,我将如何在我的代码中实现它以便它能够工作?如果你想给我答案"标题(....)"请解释如何设置它以及放置它的位置,我不想复制粘贴代码,我想学习如何操作。
我想为我的样式表(css)设置图像的过期标题(jpg / jpeg / gif / png)(如果可能)。
在下面我列出了我已经检查过的有关StackOverflow的问题,但其中一些对于像我这样的新手来说真的很难理解,或者他们从来没有真正得到答案。他们中的一些人从未说过如何实现代码片段,这使得很难使用已接受的答案。
我对网页编程很新,所以请写下解释为什么我应该做什么,所以我将来会学习它。如果您需要更多信息,请在评论中不要犹豫。我会尽力回答。谢谢。
(已经检查过的问题:
)
PHP-Version:7.0.10
(PS:我不知道为什么mod_headers和mod_expires还没有开启,但我确信公司不会因为我的小项目而改变它。)
答案 0 :(得分:1)
您不能使用不涉及PHP的PHP设置内容。通常,您的Web服务器提供图像和静态文件,因此Web服务器必须为您处理过期标头。所有其他的东西,例如用PHP提供图像,实际上不推荐,除了正确配置网络服务器之外还需要更多的工作。
因此,静态文件(图像,javascript等)的过期标头由您的网络服务器管理,而不是PHP。
提示:在大多数默认的虚拟主机服务上安装了apache,因此您可以使用.htaccess
文件来正确设置这些内容。
编辑,更多解释: 您必须区分要设置的文件到期标题。当然,您也可以在PHP文件中设置expire头,但这只会影响PHP提供的页面。 php主要用于显示动态网页,因此这里的过期标题毫无意义。静态图像和所有这些文件永远不会传递给PHP,因此您必须在Web服务器配置中设置过期。并且因为图像和其他静态文件是不会更改(或不经常)的静态文件,所以建议设置expire header以允许浏览器正确缓存它