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

如何通过.htaccess禁止直接访问public目录,仅支持根路径访问资源?

禁止直接访问/public目录的.htaccess配置方案

直接修改你根目录下的.htaccess文件,添加拦截规则即可实现需求:

<IfModule mod_rewrite.c>
  RewriteEngine On

  # 拦截所有直接访问/public路径的请求,返回403禁止访问
  RewriteCond %{THE_REQUEST} \s/+public/ [NC]
  RewriteRule ^ - [R=403,L]

  # 保留原有规则,将合法请求内部转发至public目录
  RewriteRule ^(.*)$ public/ [L]
</IfModule>

规则说明

  • RewriteCond %{THE_REQUEST} \s/+public/ [NC]:通过%{THE_REQUEST}变量检查用户的原始请求行(内部重写不会修改这个变量),判断是否存在直接访问/public/的行为。[NC]标记表示不区分大小写,覆盖所有大小写变体的请求。
  • RewriteRule ^ - [R=403,L]:如果命中上面的条件,直接返回403 Forbidden错误响应,[L]标记终止后续规则执行,避免冲突。如果想返回404 Not Found,只需将R=403改为R=404。
  • 原有重写规则保持不变,负责将不带/public前缀的合法请求内部转发到实际的public目录处理。

注意事项

确保你的Apache服务器已经启用mod_rewrite模块,并且在站点配置中设置了AllowOverride All,否则.htaccess文件的规则不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:41:31