# ==========================================================
#  فروشگاه آنلاین آدین (نسخهٔ PHP) - تنظیمات Apache
#  سازگار با PHP 7.4 و 8.3
# ==========================================================

Options -Indexes +FollowSymLinks
DirectoryIndex index.php

# ---------- فشرده‌سازی (کاهش حجم و افزایش سرعت) ----------
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
    AddOutputFilterByType DEFLATE application/javascript application/x-javascript
    AddOutputFilterByType DEFLATE application/json application/xml image/svg+xml
</IfModule>

# ---------- کش مرورگر برای فایل‌های ثابت ----------
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"
    ExpiresByType font/ttf "access plus 1 year"
    ExpiresByType font/woff2 "access plus 1 year"
    ExpiresByType image/x-icon "access plus 1 year"
</IfModule>
<IfModule mod_headers.c>
    # کش طولانی برای فایل‌های ثابت (نسخه‌بندی با ?v= انجام می‌شود)
    <FilesMatch "\.(css|js|woff2|ttf|jpg|jpeg|png|webp|gif|svg|ico)$">
        Header set Cache-Control "public, max-age=31536000, immutable"
    </FilesMatch>
</IfModule>

<IfModule mod_headers.c>
    <FilesMatch "\.(css|js|woff2|ttf)$">
        Header set Cache-Control "public, max-age=31536000, immutable"
    </FilesMatch>
    <FilesMatch "\.(jpg|jpeg|png|webp|svg|ico|gif)$">
        Header set Cache-Control "public, max-age=2592000"
    </FilesMatch>
    Header set X-Content-Type-Options "nosniff"
    Header set X-Frame-Options "SAMEORIGIN"
    Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

# ---------- نوع صحیح فایل‌ها (تا مرورگر CSS/JS را درست بشناسد) ----------
<IfModule mod_mime.c>
    AddType text/css .css
    AddType application/javascript .js
    AddType font/ttf .ttf
    AddType image/svg+xml .svg
</IfModule>

# ---------- مسیر‌دهی (Rewrite) ----------
# ساختار پوشه‌ها:
#   ریشه : index.php ، config.php ، theme.php ، loading.php ، verify.php ، favicon.ico ، sw.js
#          (فقط فایل‌هایی که کاربر باید ببیند/تنظیم کند)
#   core/: api.php ، products.php ، suggest.php ، validate_cart.php ، logo.php ،
#          manifest.php ، sitemap.php ، robots.php ، debug.php
#   آدرس‌های قدیمی (مثل /api.php یا /logo.php) با قواعد زیر دقیقاً مثل قبل کار می‌کنند،
#   بنابراین هیچ لینکی در JS/HTML نیاز به تغییر ندارد.
<IfModule mod_rewrite.c>
    RewriteEngine On
    # اگر در زیرشاخه نصب شده، این خط را با مسیر زیرشاخه فعال کنید، مثلاً:
    # RewriteBase /shop/

    # فایل‌های ثابت (assets)، favicon و service worker هرگز بازنویسی نشوند
    RewriteRule ^(assets/|favicon\.ico|sw\.js) - [L]

    # عدم دسترسی به پوشه‌های داخلی
    RewriteRule ^(cache|inc|pages)/ - [F,L]

    # ---------- endpointها (منتقل‌شده به پوشهٔ core) ----------
    # (?:[^/]+/)? یعنی «با یا بدون نام فروشگاه در ابتدای آدرس».
    # روی دامنه‌های عادی:  /api.php
    # روی adinmarket.ir :  /barqalat/api.php   ← هر دو به یک فایل می‌رسند
    RewriteRule ^(?:[^/]+/)?robots\.txt$        core/robots.php        [L]
    RewriteRule ^(?:[^/]+/)?sitemap\.xml$       core/sitemap.php       [L]
    RewriteRule ^(?:[^/]+/)?api\.php$           core/api.php           [L]
    RewriteRule ^(?:[^/]+/)?suggest\.php$       core/suggest.php       [L]
    RewriteRule ^(?:[^/]+/)?products\.php$      core/products.php      [L]
    RewriteRule ^(?:[^/]+/)?validate_cart\.php$ core/validate_cart.php [L]
    RewriteRule ^(?:[^/]+/)?image\.php$         core/image.php         [L]
    RewriteRule ^(?:[^/]+/)?offcode\.php$       core/offcode.php       [L]
    RewriteRule ^(?:[^/]+/)?ship\.php$          core/ship.php          [L]
    RewriteRule ^(?:[^/]+/)?logo\.php$          core/logo.php          [L]
    RewriteRule ^(?:[^/]+/)?manifest\.php$      core/manifest.php      [L]
    RewriteRule ^(?:[^/]+/)?debug\.php$         core/debug.php         [L]

    # verify مستقیم در ریشه (بازگشت از درگاه پرداخت)
    RewriteRule ^(?:[^/]+/)?verify\.php$ verify.php [L]

    # هر فایل یا پوشهٔ واقعی دیگر مستقیم سرو شود
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # بقیه به کنترلر اصلی
    RewriteRule ^ index.php [L]
</IfModule>
