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

如何使用.htaccess隐藏public_html内存放css、js等资源的asset目录

静态资源目录安全防护操作方案

方案一:使用.htaccess实现访问控制(推荐)

该方案适配Apache服务器,无需修改项目代码引用路径,生效速度快。

操作步骤

  1. 进入你需要防护的asset目录,在目录根下新建名为.htaccess的隐藏文件
  2. 根据你的实际需求选择对应配置写入文件:

需求1:禁止目录遍历、允许正常资源加载、禁止盗链

适合css、js、站点公开图片这类需要被页面正常加载的资源场景:

# 关闭目录列表展示,避免外部直接遍历所有目录文件
Options -Indexes

# 配置仅允许你的站点域名引用资源,防止第三方盗链
SetEnvIf Referer "^https?://(www\.)?你的站点域名\.com" site_refer
<FilesMatch "\.(css|js|png|jpg|jpeg|gif|webp|svg|ico)$">
    Order Allow,Deny
    Allow from env=site_refer
    # 本地调试可额外放开本机访问:Allow from 127.0.0.1
</FilesMatch>

# 禁止外部访问.htaccess文件本身
<Files .htaccess>
    Order Allow,Deny
    Deny from all
</Files>

需求2:完全禁止外部访问该目录

适合存放非公开私有资源的场景,所有资源需要通过后端鉴权后转发读取:

Deny from all

方案二:目录随机重命名

该方案仅降低目录被扫描发现的概率,无法完全阻止路径泄露后的访问,建议和.htaccess搭配使用。

操作步骤

  • 将原asset目录重命名为无规律的随机字符串,例如asset_x3kP7mQ2
  • 同步修改项目中所有引用该目录资源的路径为新的目录名称
  • 若要进一步提升安全性,可同时在重命名后的目录下添加前述的.htaccess规则

注意事项

  • .htaccess规则修改后无需重启Apache服务,即时生效
  • 若配置盗链规则后出现资源加载异常,可先删除Referer相关配置,仅保留Options -Indexes先完成目录遍历防护,再逐步排查域名配置问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:18:04