# ======================================================================
# Qoran - تنظیمات Apache برای cPanel
# این فایل باید داخل پوشه Qoran (کنار index.html) قرار گیرد.
# ======================================================================

# ---------- 1. امنیت پایه ----------
Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch
ServerSignature Off
DirectoryIndex index.html
AddDefaultCharset UTF-8

# ---------- 2. بازنویسی آدرس و اجبار HTTPS ----------
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /Qoran/

    # انتقال درخواست های HTTP به HTTPS (روی هر دامنه ای که نصب شود)
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    # مسدود کردن دسترسی به فایل های مخفی (مانند .htaccess و .git)
    RewriteRule "(^|/)\.(?!well-known/)" - [F]

    # فقط متدهای GET، HEAD و POST مجازند
    RewriteCond %{REQUEST_METHOD} !^(GET|POST|HEAD) [NC]
    RewriteRule .* - [F,L]
</IfModule>

# ---------- 3. هدرهای امنیتی ----------
<IfModule mod_headers.c>
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-XSS-Protection "1; mode=block"
    Header always set Referrer-Policy "strict-origin-when-cross-origin"
    Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    # CSP: اسکریپت و فونت و تصویر فقط از همین سایت؛ صوت فقط از everyayah.com
    Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data:; media-src 'self' https://everyayah.com; connect-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'"
</IfModule>

# ---------- 4. نوع فایل ها ----------
<IfModule mod_mime.c>
    AddType font/woff2 .woff2
    AddType text/css   .css
    AddType application/javascript .js
    AddType text/html  .html
</IfModule>

# ---------- 5. فشرده سازی ----------
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript image/svg+xml font/woff2
</IfModule>

# ---------- 6. کش مرورگر ----------
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    ExpiresByType text/html "access plus 0 seconds"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
    ExpiresByType font/woff2 "access plus 1 year"
</IfModule>
