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

如何用.htaccess允许display.html访问图片并禁止图片直接访问?

解决方案

你的原配置问题出在<FilesMatch>块内嵌套<Files>指令无效——<FilesMatch>已经匹配了图片文件,里面的<Files "display.html">永远不会命中这些图片,导致所有图片请求都被拒绝。

可以通过检查请求的Referer头来实现需求:当图片请求来自display.html页面时允许访问,直接输入URL访问则拒绝。修改后的.htaccess配置如下:

# 关闭目录索引,防止列出文件
Options -Indexes

# 允许所有人访问display.html
<Files "display.html">
    Order allow,deny
    Allow from all
</Files>

# 限制图片仅能从display.html加载
<FilesMatch "\.(jpg|jpeg|png|gif)$">
    Order deny,allow
    Deny from all
    # 检查Referer是否来自当前域名下的display.html
    Allow from env=REDIRECT_REFERER_DISPLAY
</FilesMatch>

# 设置环境变量,匹配来自display.html的Referer
SetEnvIf Referer "^https?://[^/]+/display\.html$" REDIRECT_REFERER_DISPLAY

说明:

  • SetEnvIf指令会检查请求的Referer是否是当前域名下的display.html页面(支持http和https),符合条件则设置环境变量REDIRECT_REFERER_DISPLAY。
  • 在图片的匹配规则里,允许带有这个环境变量的请求,也就是从display.html发起的图片加载请求。
  • 直接访问图片URL时,Referer为空或不符合规则,会被拒绝返回403。

注意:少数用户可能会禁用浏览器的Referer发送,但这是目前最简便且通用的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:32:04