# ============================================
# ОСНОВНЫЕ НАСТРОЙКИ
# ============================================
AddDefaultCharset utf-8
Options -Indexes

# ============================================
# МОДУЛЬ REWRITE (ГЛАВНАЯ ЧАСТЬ)
# ============================================
<IfModule mod_rewrite.c>
    RewriteEngine On
    
    # 1. 🔹 КРИТИЧЕСКИ ВАЖНО: Если запрос идет к реальному файлу или папке — ОТДАТЬ ЕГО!
    # Это исправляет ошибку 404 для /admin/login.php, /css/style.css и т.д.
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    # 2.  Исключаем папку admin из любых дальнейших проверок (для безопасности и скорости)
    RewriteCond %{REQUEST_URI} !^/admin/

    # 3. Блокировка ботов (только если это НЕ реальный файл и НЕ админка)
    RewriteCond %{HTTP_USER_AGENT} (python|curl|wget|Go-http-client|HttpClient|nikto|scan|spider) [NC]
    RewriteCond %{HTTP_USER_AGENT} !^.*(googlebot|bingbot|yandexbot|mail\.ru_bot|sputnikbot) [NC]
    RewriteRule ^.* - [F,L]
    
    # 4. Если у тебя есть роутинг на index.php (например, для ЧПУ), раскомментируй строку ниже:
    # RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

# ============================================
# ЗАЩИТА СИСТЕМНЫХ ФАЙЛОВ
# ============================================
<FilesMatch "^(config|core|\.htaccess|\.env|\.ini|database\.php)$">
    Require all denied
</FilesMatch>

# ============================================
# КЭШИРОВАНИЕ И СЖАТИЕ (ОПТИМИЗАЦИЯ)
# ============================================
<IfModule mod_headers.c>
    Header unset ETag
    FileETag None
</IfModule>

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
</IfModule>

<FilesMatch "^(bancode|lincode)\.php$">
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "*"
        Header set Cache-Control "public, max-age=60, must-revalidate"
        Header set Content-Type "application/javascript; charset=utf-8"
    </IfModule>
</FilesMatch>

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json
</IfModule>