Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 为特定图像添加Expires标头_.htaccess_Mod Expires - Fatal编程技术网

.htaccess 为特定图像添加Expires标头

.htaccess 为特定图像添加Expires标头,.htaccess,mod-expires,.htaccess,Mod Expires,我看过的所有文章都或多或少地给出了以下解决方案: ExpiresByType image/gif A2592000 ExpiresByType image/png A2592000 ExpiresByType image/jpg A2592000 ExpiresByType image/jpeg A2592000 但这对我来说没有意义,因为我知道哪些图像要更改,哪些不更改,所以我希望能够将特定的过期日期添加到特定的图像文件中。我该怎么做呢?您可以使用文件匹配,例如 <FilesMatch

我看过的所有文章都或多或少地给出了以下解决方案:

ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000

但这对我来说没有意义,因为我知道哪些图像要更改,哪些不更改,所以我希望能够将特定的过期日期添加到特定的图像文件中。我该怎么做呢?

您可以使用
文件匹配,例如

<FilesMatch "\.(js|css)$">
  ExpiresActive on 
  ExpiresDefault "access plus 1 month"
</FilesMatch>

过期于
ExpiresDefault“访问加1个月”
或者对于某些特定文件:

<FilesMatch "^(example.js|sample.css)$">
  ExpiresActive on 
  ExpiresDefault "access plus 1 month"
</FilesMatch>

过期于
ExpiresDefault“访问加1个月”

请注意,如果您已经使用了
ExpiresByType
,则对特定文件使用
expiresbydefault
将不起作用。您需要再次使用
ExpiresByType

因此这将不起作用(
service worker.js
仍将有+1年的有效期):

您还可以使用
标题unset Expires
。这将删除
Expires
头,无论上面设置了什么。您还应该修改(或删除)
缓存控件
标题。似乎
mod_expires
设置了这两个选项

    <FilesMatch "^(service-worker.js)$">
        Header unset Expires
        Header set Cache-Control "max-age=0"
    </FilesMatch>

标题未设置过期
标头集缓存控制“最大年龄=0”

能否举例说明如何将其应用于特定的图像文件:example.jpg?谢谢感谢您的帮助,非常感谢:那么下面的工作呢?(image.jpg | anotherImage.png | backgroundImage.png | bannerImg.jpg)将此代码添加到我的.htaccess时出现了500个内部服务器错误。@a'r:我认为您需要避开dot
,可能还值得添加
头附加缓存控件“public”
阅读更多:
<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault                                      "access plus 1 month"
    ExpiresByType application/javascript                "access plus 1 year"
    <FilesMatch "^(service-worker.js)$">
        ExpiresByType application/javascript            "access plus 0 seconds"
    </FilesMatch>
</IfModule>
    <FilesMatch "^(service-worker.js)$">
        Header unset Expires
        Header set Cache-Control "max-age=0"
    </FilesMatch>