# ============================================================
#  云电脑开账号 · 虚拟主机网站 Apache 配置
#  适用于常见 Linux 虚拟主机（Apache + mod_rewrite）
#  Nginx 主机请参考 README 中对应的配置片段
# ============================================================

# ---------- 1. 禁止直接访问敏感目录与文件 ----------
<IfModule mod_authz_core.c>
    <FilesMatch "^(\.htaccess|\.htpasswd|config\.php)$">
        Require all denied
    </FilesMatch>
</IfModule>
<IfModule !mod_authz_core.c>
    <FilesMatch "^(\.htaccess|\.htpasswd|config\.php)$">
        Order allow,deny
        Deny from all
    </FilesMatch>
</IfModule>

# ---------- 2. 关闭目录列表 ----------
Options -Indexes

# ---------- 3. 默认首页 ----------
DirectoryIndex index.php index.html

# ---------- 4. 伪静态：把 /api/xxx 转到 api.php?action=xxx ----------
<IfModule mod_rewrite.c>
    RewriteEngine On

    # /api/send-code  ->  api.php?action=send-code
    RewriteRule ^api/?([a-z0-9\-]+)/?$ api.php?action=$1 [L,QSA]

    # 屏蔽 data 目录（双重保险，配合 data/.htaccess）
    RewriteRule ^data/ - [F,L]
</IfModule>

# ---------- 5. 基础安全响应头 ----------
<IfModule mod_headers.c>
    Header set X-Content-Type-Options "nosniff"
    Header set X-Frame-Options "SAMEORIGIN"
    Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

# ---------- 6. 静态资源缓存 ----------
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 7 days"
    ExpiresByType application/javascript "access plus 7 days"
    ExpiresByType image/png "access plus 30 days"
    ExpiresByType image/jpeg "access plus 30 days"
    ExpiresByType image/webp "access plus 30 days"
</IfModule>

# ---------- 7. PHP 错误不外泄（生产环境） ----------
<IfModule mod_php.c>
    php_flag display_errors off
    php_flag log_errors on
</IfModule>
