# ============================================================================
#  .htaccess ریشه پروژه پیاز — ساختار flat (ریشه = document root)
# ============================================================================

Options -Indexes -MultiViews
ServerSignature Off

# --- URL تمیز صفحه محصول ---
<IfModule mod_rewrite.c>
  RewriteEngine On

  # /p/{slug} → product.php
  RewriteRule ^p/([^/]+)/?$ product.php?slug=$1 [L,QSA]
</IfModule>

# --- امنیت: بستن پوشه‌های کد و دیتابیس ---
RedirectMatch 403 ^/?(src|sql)(/.*)?$

# بستن فایل‌های حساس
<FilesMatch "(?i)\.(env|ini|log|sql|md|sh|bak|dist|lock)$">
  Require all denied
</FilesMatch>

# بستن config و فایل‌های کتابخانه‌ای (_layout و ...)
<FilesMatch "^(config\.php|_.*\.php)$">
  Require all denied
</FilesMatch>

# پنهان‌کردن فایل‌های dot (به‌جز موارد لازم)
<FilesMatch "^\.(?!well-known)">
  Require all denied
</FilesMatch>

# اجازه صریح برای robots و sitemap
<FilesMatch "^(robots\.txt|sitemap\.php)$">
  Require all granted
</FilesMatch>

# --- صفحه خطای سفارشی ---
ErrorDocument 404 /404.php

# --- هدرهای امنیتی ---
<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 unset X-Powered-By
</IfModule>

# --- فشرده‌سازی و کش ---
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json image/svg+xml
</IfModule>
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType text/css "access plus 7 days"
  ExpiresByType application/javascript "access plus 7 days"
  ExpiresByType image/jpeg "access plus 30 days"
  ExpiresByType image/png "access plus 30 days"
  ExpiresByType image/webp "access plus 30 days"
</IfModule>
