Options -Indexes
<FilesMatch "\.(dat|sqlite)$">
  Require all denied
</FilesMatch>

<IfModule mod_rewrite.c>
  RewriteEngine On

  # Статика и загрузки отдаём как есть
  RewriteCond %{REQUEST_FILENAME} -f
  RewriteRule ^ - [L]

  # Админка
  RewriteRule ^admin/?$ admin/index.php [L]
  RewriteRule ^admin/([a-zA-Z0-9_\-]+)/?$ admin/$1.php [L,QSA]

  # Красивые ссылки на релизы: /release/slug -> public/release.php?slug=slug
  RewriteRule ^release/([a-zA-Z0-9\-]+)/?$ public/release.php?slug=$1 [L,QSA]

  # Красивые ссылки на анонсы: /announcement/slug -> public/announcement.php?slug=slug
  RewriteRule ^announcement/([a-zA-Z0-9\-]+)/?$ public/announcement.php?slug=$1 [L,QSA]

  # Юридические документы: /legal/terms -> public/legal.php?doc=terms
  RewriteRule ^legal/([a-zA-Z]+)/?$ public/legal.php?doc=$1 [L,QSA]

  # Личные страницы пользователей (публикации/фото): /u/123 -> public/user.php?id=123
  RewriteRule ^u/([0-9]+)/?$ public/user.php?id=$1 [L,QSA]

  # Личный кабинет (вход/регистрация/профиль/корзина/OAuth) — единый контроллер ядра,
  # сам разбирает хвост пути по $_SERVER['REQUEST_URI'] (см. public/account.php).
  RewriteRule ^account(/.*)?$ public/account.php [L,QSA]

  # Главная страница
  RewriteRule ^$ public/index.php [L]

  # Публичные страницы модулей (/fanclub, /shop/slug, /games/slug и т.д.)
  RewriteCond %{REQUEST_URI} !^/public/
  RewriteCond %{REQUEST_URI} !^/admin/
  RewriteCond %{REQUEST_URI} !^/install\.php
  RewriteRule ^(.*)$ module_router.php [L,QSA]
</IfModule>
