XAMPP中.htaccess禁止访问.git失效的主因是AllowOverride默认为None,需在httpd.conf中用或硬性配置Require all denied并重启Apache。

直接结论:XAMPP 默认不启用 .htaccess,所以靠 .htaccess 禁止访问 .git 目录大概率失效;必须改 httpd.conf 或虚拟主机配置,并确保 AllowOverride All 已开启(否则 .htaccess 会被忽略)。
为什么 .htaccess 里写 RewriteRule ^\.git - [F,L] 不生效
常见现象是:明明加了 RewriteRule ^\.git - [F,L] 到 .htaccess,但访问 http://localhost/myapp/.git/config 依然能下载文件。
- XAMPP 的默认
httpd.conf中,<directory></directory>块里AllowOverride默认是None,意味着所有.htaccess指令被完全忽略 -
RewriteEngine on必须在启用mod_rewrite的前提下才有效,而 XAMPP 默认虽加载该模块,但若AllowOverride None,RewriteEngine在.htaccess里也无效 - Windows 路径分隔符和正则转义容易出错:
^.git应写为^\.git(点需转义),否则匹配的是任意字符 + git
正确做法:改 httpd.conf,用 Directory 块硬性禁止
这是最可靠、无需依赖 .htaccess 的方式,适用于所有 Apache 2.4+(XAMPP 8.x 默认用 2.4)。
OpenClaw 技能 — 给定一个 GitHub 仓库 URL,自动解析出 owner/repo 名称,发现其中的 YAML/properties 配置文件及其配对的中文字段说明;在 `workspace/{repo}/` 目录下按同步日期(格式为 `YYYY-MM-DD`)创建时间戳子目录;写入 `.openclaw-config-state.json` 状态文件。每次用户提问前,先比对远程仓库当前 ref(如 `main` 或 `master`)的最新提交 SHA 与本地状态文件中记录的 SHA:
- 编辑
C:\xampp\apache\conf\httpd.conf - 在文件末尾添加(路径按你项目实际位置调整):
<Directory "C:/xampp/htdocs/myproject/.git"> Require all denied </Directory> - 如果项目在子目录(如
htdocs/blog),路径要写全:"C:/xampp/htdocs/blog/.git",不能用通配符.git/*—— Apache 2.4 不支持这种写法,会报语法错误 - 保存后,必须重启 Apache(通过 XAMPP Control Panel)
同时关闭目录浏览:防止漏掉 index 文件时暴露结构
禁掉 .git 还不够。如果某目录下没 index.html,Apache 仍可能列出整个文件树(含 .env、config.php 等敏感文件)。
- 在同一个
httpd.conf文件中,找到类似这样的块:<Directory "C:/xampp/htdocs"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> - 把
Options Indexes FollowSymLinks改成Options FollowSymLinks(删掉Indexes) - 或者更严格点:改用
Options -Indexes +FollowSymLinks,显式禁用Indexes - 改完务必重启 Apache,否则修改不生效
进阶:用 LocationMatch 统一拦截所有隐藏目录
如果你有多个项目,或想一劳永逸屏蔽 .git、.svn、.env 等,<locationmatch></locationmatch> 更灵活:
- 在
httpd.conf中添加:<LocationMatch "/\.git(/|$)|/\.svn(/|$)|/\.env$"> Require all denied </LocationMatch> - 注意:正则中
/\.git(/|$)能匹配/.git和/.git/config,但无法匹配/subdir/.git—— 因为<locationmatch></locationmatch>匹配的是 URL 路径,不是文件系统路径 - 若要覆盖子目录下的
.git,必须配合<directorymatch></directorymatch>,但 Windows 下路径反斜杠易引发解析问题,不建议新手用
真正麻烦的从来不是加几行配置,而是改完忘了重启 Apache,或者路径写错一个斜杠 —— XAMPP 的日志(C:\xampp\apache\logs\error.log)里会明确报出配置语法错误,比反复试访问靠谱得多。

















