# ============================================================
# CHECKOUT PRO 2025 - Configuração .htaccess
# Sistema de Checkout Profissional com múltiplos gateways
# ============================================================

# Ativar o módulo de reescrita de URL
RewriteEngine On

# ============================================================
# 1. CONFIGURAÇÕES BÁSICAS
# ============================================================

# Definir arquivo inicial padrão
DirectoryIndex dashboard/login_completo.php index.php

# Prevenir listagem de diretórios
Options -Indexes

# Proteger arquivos sensíveis
<FilesMatch "\.(htaccess|htpasswd|ini|log|sql|md)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

# Permitir acesso a arquivos públicos
<FilesMatch "\.(jpg|jpeg|png|gif|svg|webp|css|js|woff|woff2|ttf|eot|ico|pdf)$">
    Order Allow,Deny
    Allow from all
</FilesMatch>

# ============================================================
# 2. ROTAS AMIGÁVEIS - DASHBOARD
# ============================================================

# Dashboard Admin - URLs amigáveis
# /admin ou /dashboard -> dashboard/index.php
RewriteRule ^admin/?$ dashboard/index.php?page=dashboard [L,QSA]
RewriteRule ^dashboard/?$ dashboard/index.php?page=dashboard [L,QSA]

# Dashboard Admin - Páginas específicas
# /admin/produtos -> dashboard/index.php?page=produtos
# /admin/pedidos -> dashboard/index.php?page=pedidos
# etc.
RewriteRule ^admin/([a-z_]+)/?$ dashboard/index.php?page=$1 [L,QSA]
RewriteRule ^dashboard/([a-z_]+)/?$ dashboard/index.php?page=$1 [L,QSA]

# Login
RewriteRule ^login/?$ dashboard/login_completo.php [L,QSA]

# Logout
RewriteRule ^logout/?$ dashboard/logout.php [L,QSA]

# ============================================================
# 3. ROTAS AMIGÁVEIS - ÁREA DO USUÁRIO
# ============================================================

# Área do usuário
# /usuario ou /minha-conta -> dashboard/usuario.php
RewriteRule ^usuario/?$ dashboard/usuario.php [L,QSA]
RewriteRule ^minha-conta/?$ dashboard/usuario.php [L,QSA]

# Páginas do usuário
# /usuario/produtos -> dashboard/usuario.php?page=meus_produtos
# /usuario/financeiro -> dashboard/usuario.php?page=financeiro
# etc.
RewriteRule ^usuario/([a-z_]+)/?$ dashboard/usuario.php?page=$1 [L,QSA]
RewriteRule ^minha-conta/([a-z_]+)/?$ dashboard/usuario.php?page=$1 [L,QSA]

# ============================================================
# 4. ROTAS AMIGÁVEIS - CHECKOUT E VENDAS
# ============================================================

# Marketplace
# /marketplace ou /loja -> views/marketplace.php
RewriteRule ^marketplace/?$ views/marketplace.php [L,QSA]
RewriteRule ^loja/?$ views/marketplace.php [L,QSA]

# Dados Pessoais (início do checkout)
# /checkout/produto/123 -> views/dados_pessoais.php?produto_id=123
RewriteRule ^checkout/produto/([0-9]+)/?$ views/dados_pessoais.php?produto_id=$1 [L,QSA]

# Checkout (pagamento)
# /checkout/123 -> views/checkout.php?produto_id=123
RewriteRule ^checkout/([0-9]+)/?$ views/checkout.php?produto_id=$1 [L,QSA]

# Páginas de resultado
# /aprovado -> views/aprovado.php
# /reprovado -> views/reprovado.php
RewriteRule ^aprovado/?$ views/aprovado.php [L,QSA]
RewriteRule ^reprovado/?$ views/reprovado.php [L,QSA]

# ============================================================
# 5. COMPATIBILIDADE - MANTER ROTAS ANTIGAS FUNCIONANDO
# ============================================================

# Permitir acesso direto a arquivos PHP nas pastas views e backend
# (necessário para manter compatibilidade com rotas existentes)
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^views/.*\.php$ - [L]
RewriteRule ^backend/.*\.php$ - [L]
RewriteRule ^dashboard/.*\.php$ - [L]

# ============================================================
# 6. SEGURANÇA E PERFORMANCE
# ============================================================

# Proteger pasta vendor (Composer)
RewriteRule ^vendor/ - [F,L]

# Proteger pasta config (exceto se necessário para includes)
RewriteRule ^config/.*\.sql$ - [F,L]

# Forçar HTTPS (descomente se tiver SSL)
# RewriteCond %{HTTPS} off
# RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Remover trailing slash (exceto para diretórios)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]

# ============================================================
# 7. CACHE E COMPRESSÃO
# ============================================================

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType font/woff "access plus 1 year"
    ExpiresByType font/woff2 "access plus 1 year"
</IfModule>

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

# ============================================================
# 8. CONFIGURAÇÕES PHP (se permitido pelo servidor)
# ============================================================

<IfModule mod_php7.c>
    php_value upload_max_filesize 10M
    php_value post_max_size 10M
    php_value max_execution_time 300
    php_value max_input_time 300
</IfModule>

# ============================================================
# FIM DA CONFIGURAÇÃO
# ============================================================


