# SimpleNav —— 根目录安全规则
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^data/ - [F,L]
  RewriteRule ^\.git/ - [F,L]
</IfModule>
# 关闭目录浏览
Options -Indexes

# 根目录静态资源（favicon / apple-touch-icon / webmanifest）也走「长缓存 + 版本号」
# 注意：assets/ 下的资源由 assets/.htaccess 负责，这里只管根目录这几个文件。
<IfModule mod_headers.c>
  <FilesMatch "\.(ico|png|svg|webmanifest)$">
    Header set Cache-Control "public, max-age=31536000, immutable"
  </FilesMatch>
</IfModule>

# ---------------------------------------------------------------------------
# 绕开「服务器侧整页缓存」
#
# 背景（2026-09-28 线上实测）：服务器装了宝塔面板的「网站加速」，那是一层基于
# memcached 的整页缓存（脚本 /www/server/speed/httpd_speed.lua，站点配置
# /www/server/speed/config.lua 里该站点那一节，expire=30 秒）。它的缓存键
# 按 host:port + 完整 URI 计算，只缓存 GET 的 text/html。
#
# 关键坑：它**读不到 FastCGI 后端返回的 Cache-Control**（实测存下来的副本里
# 根本没有这个头），所以 PHP 里发的 no-store / no-cache 对它无效 —— 会出现
# 「后台改完，前台刷新还是旧的」，而且因为每次 MISS 都会重新写入，旧页面窗口
# 还会被后续访问不断续期（滑动 30 秒）。
#
# 它唯一认的「别缓存我」信号是**请求** cookie `X_CACHE=1`（它本来用于标记已登录
# 用户）。这里就在请求侧直接注入该标记：edit 处理「已经有 Cookie」的情况，
# setifempty 处理「完全没有 Cookie」的首次访问。
#
# 若哪天不需要了（例如该站点已关闭「网站加速」），整段删掉即可。
# ---------------------------------------------------------------------------
<IfModule mod_headers.c>
  RequestHeader edit Cookie "^(.*)$" "$1; X_CACHE=1"
  RequestHeader setifempty Cookie "X_CACHE=1"
</IfModule>
