# CTF 1405 — Routing API در آپاچی
# همهٔ آدرس‌های /CTF/api/* که فایل فیزیکی نیستند به front controller هدایت می‌شوند:
#   /api/register/step1  →  /api/public/index.php/register/step1
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ public/index.php/$1 [L]
</IfModule>

# قفل ساختاری: فقط front controller اجرا شود؛ دسترستی مستقیم به سایر فایل‌های PHP
# و فایل‌های حساس (کانفیگ/دیتابیس/منبع) مسدود گردد (جلوگیری از افشای منبع و نقطهٔ ورود دوم).
<FilesMatch "(?i)^(?!index\.php$).*\.php$">
    Require all denied
</FilesMatch>
<FilesMatch "(?i)\.(env|env\.example|json|ini|bak|sql|log|dist|lock)$">
    Require all denied
</FilesMatch>

# لاگ‌های PHP بدون پسوند نقطه‌ای‌اند (error_log) — قانونِ بالا شاملشان نمی‌شود؛
# نفی بر اساس نام، تا مسیرِ وب هرگز فایل لاگ را سرو نکند.
<FilesMatch "(?i)^(error_log|access_log|debug_log|.+_log)$">
    Require all denied
</FilesMatch>