# ============================================================
#  SƠN LINH — Bảo vệ thư mục API
# ============================================================
#  ⚠️ QUY TẮC SỐNG CÒN CHO HOST NÀY (rút ra từ sự cố 17/07/2026 — toàn bộ
#     /tlhc/ trả HTTP 500, kể cả file .json tĩnh, khiến extension KHÔNG đăng
#     ký được tài khoản nào suốt thời gian dài):
#
#     1. TUYỆT ĐỐI KHÔNG dùng `Options` — host này không cho phép ghi đè
#        (AllowOverride không có Options) → Apache trả 500 cho CẢ THƯ MỤC,
#        kể cả file tĩnh. Xem host/trangquantri/.htaccess: dòng `Options
#        -Indexes` đã bị comment lại vì đúng lý do này.
#     2. MỌI directive của module phải bọc trong <IfModule>. Thiếu module là
#        Apache 500 chứ không bỏ qua.
#     3. `Require all denied` là cú pháp Apache 2.4 → phải có nhánh dự phòng
#        `Order deny,allow` cho 2.2.
#
#     Một dòng sai ở đây làm chết TOÀN BỘ backend extension. Đổi file này
#     xong phải test lại bằng: curl -I https://<host>/tlhc/api/auth.php
#     (kỳ vọng 405 hoặc JSON — KHÔNG được là 500).
# ============================================================

# ── Chặn truy cập trực tiếp vào file nhạy cảm ──────────────
<FilesMatch "^(config\.php|config\.local\.php|db\.php|rate_limit\.php|user_core\.php|landing_config\.json)$|\.sql$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
</FilesMatch>

# ── Chặn file thử nghiệm/tạm bị bỏ quên ────────────────────
# (vd test_exp.php từng lộ email người dùng)
<FilesMatch "^(test_.*\.php|.*_test\.php)$|\.(bak|old|orig|save|swp)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
</FilesMatch>

# ── CORS & security headers: KHÔNG đặt ở đây ───────────────
# db.php (hàm jsonOut) đã đặt đủ Access-Control-Allow-Origin, X-Content-Type-
# Options, X-Frame-Options, CSP và tự xử lý preflight OPTIONS bằng PHP.
# Đặt lại ở .htaccess sẽ sinh HEADER TRÙNG — trình duyệt gặp hai giá trị
# Access-Control-Allow-Origin sẽ CHẶN request. Giữ một nguồn duy nhất là PHP.
