You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁止浏览器缓存通过.htaccess和PHP实现的随机图片

解决方案

方案1:在PHP代码中添加缓存控制头(推荐)

直接修改random-image.php,在输出图片前添加禁止缓存的响应头即可,修改后的完整代码如下:

<?php
    //  random-image.php
    $images=glob("images/*.jpg");
    $image=imagecreatefromjpeg($images[array_rand($images)]);
    // 禁止缓存相关响应头
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    header("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
    header('Content-Type: image/jpeg');
    imagejpeg($image);
    // 释放图片内存避免资源泄露
    imagedestroy($image);
?>

该方案兼容性最好,不需要依赖服务端额外扩展。

方案2:通过.htaccess配置响应头

如果不想修改PHP代码,可以直接在现有.htaccess配置中追加头信息,修改后的配置如下:

#   .htaccess
<Files random.jpg>
    RewriteEngine On
    RewriteRule ^(.+)$ /random-image.php [QSA,L]
    # 禁止缓存头配置
    Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
    Header set Pragma "no-cache"
    Header set Expires "Thu, 1 Jan 1970 00:00:00 GMT"
</Files>

使用该方案需要提前确认Apache环境已经开启mod_headers扩展,否则配置会报错。

两种方案任选其一即可生效,无需修改前端HTML引用代码。

内容的提问来源于stack exchange,提问作者Manngo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:15:03