图像忽略.htaccess中的Cache-Control

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像忽略.htaccess中的Cache-Control相关的知识,希望对你有一定的参考价值。

在我的images文件夹中,我有一个.htaccess文件,其中包含以下内容:

<IfModule mod_headers.c>

  # Browsers may cache images for 24 hours, including disk cache for SSL
  Header set Cache-Control "max-age=2628000, public, must-revalidate"

</IfModule>

当我卷曲该文件夹中的图像时,我得到以下内容(注意Cache-Control缺少“public”和“must-revalidate”):

HTTP/1.1 200 OK
Server: nginx/1.11.8
Date: Fri, 14 Dec 2018 17:57:00 GMT
Content-Type: image/jpeg
Content-Length: 46563
Last-Modified: Fri, 29 Sep 2017 03:16:20 GMT
Connection: keep-alive
ETag: "59cdbb04-b5e3"
Expires: Fri, 21 Dec 2018 17:57:00 GMT
Cache-Control: max-age=604800
Strict-Transport-Security: max-age=31536000
Accept-Ranges: bytes

我放在.htaccess文件中并不重要,我总是得到上面的响应。

如果我在该文件夹中创建一个新图像,我也会得到相同的上述响应。

如果我更改该文件夹(.bak)中图像的扩展名,我会得到预期的响应(Cache-Control是正确的):

HTTP/1.1 200 OK
Server: nginx/1.11.8
Date: Fri, 14 Dec 2018 17:59:35 GMT
Content-Type: image/gif
Content-Length: 19164
Connection: keep-alive
Last-Modified: Fri, 14 Dec 2018 16:07:12 GMT
ETag: "183ca-4adc-57cfd9fbbac00"
Accept-Ranges: bytes
Cache-Control: max-age=2628000, public, must-revalidate
Strict-Transport-Security: max-age=31536000

有什么想法在这里发生了什么?我查看了所有父.htaccess文件和apache配置,我找不到任何东西!

请帮忙!!!

答案

对于遇到此问题的任何其他人,Apache .htaccess指令被以下Nginx配置覆盖:

location ~* ^(.+?)(?:.d+)?.(jpe?g|gif|png|svg|ico|bmp|js|css|ttf|eot|woff2?)$ {
    root /var/www;
    try_files $1.$2 @apache;
    expires 7d;
}

替换“过期7d;”以下做了诀窍:

 add_header Cache-Control "max-age=2628000, public, must-revalidate";

以上是关于图像忽略.htaccess中的Cache-Control的主要内容,如果未能解决你的问题,请参考以下文章

忽略 GeoIP Htaccess Rewrite 中的 magento 管理目录

重定向但需要弄清楚在多站点 wordpress 结构中忽略 .htaccess 中的目录

apache_conf 忽略htaccess重定向中的本地开发域

通过https忽略htaccess文件

Laragon 会忽略 .htaccess 吗?

Apache 服务器忽略 .htaccess