# ==================================================================
# ستورك | Stoorak — إعدادات Apache
# ==================================================================

# --- منع عرض محتويات المجلدات ---
Options -Indexes
Options +FollowSymLinks

# --- الصفحة الافتراضية ---
DirectoryIndex index.php index.html

<IfModule mod_rewrite.c>
    RewriteEngine On

    # لوحة التحكم على المسار /admin
    RewriteRule ^admin/?$ dashboard.php [L]
    RewriteRule ^admin/login/?$ login.php [L]
    RewriteRule ^admin/logout/?$ logout.php [L]

    # إزالة امتداد .php من الروابط (اختياري وآمن)
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
</IfModule>

# --- حماية المجلدات والملفات الحساسة ---
RedirectMatch 403 ^/?data(/.*)?$
RedirectMatch 403 ^/?config(/.*)?$
RedirectMatch 403 ^/?includes(/.*)?$

<FilesMatch "\.(csv|json|log|ini|sql|bak|tmp)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</FilesMatch>

# استثناء ملفات الموقع العامة
<FilesMatch "^(robots\.txt|sitemap\.xml)$">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
</FilesMatch>

# منع الوصول إلى ملفات النظام المخفية
<FilesMatch "^\.">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
</FilesMatch>

# --- رؤوس الأمان ---
<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set Referrer-Policy "strict-origin-when-cross-origin"
    Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
    Header unset X-Powered-By
    # منع أرشفة لوحة التحكم
    <FilesMatch "^(dashboard|login|logout|update-lead|export-csv)\.php$">
        Header always set X-Robots-Tag "noindex, nofollow, noarchive"
    </FilesMatch>
</IfModule>

# --- الضغط ---
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
    AddOutputFilterByType DEFLATE application/javascript application/json
    AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

# --- التخزين المؤقت للملفات الثابتة ---
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpeg        "access plus 6 months"
    ExpiresByType image/png         "access plus 6 months"
    ExpiresByType image/webp        "access plus 6 months"
    ExpiresByType image/svg+xml     "access plus 6 months"
    ExpiresByType text/css          "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType text/html         "access plus 0 seconds"
</IfModule>

# --- ترميز افتراضي ---
AddDefaultCharset UTF-8

# --- صفحات الخطأ ---
ErrorDocument 403 /index.php
ErrorDocument 404 /index.php
