# ----------------------------------------
# Archivo .htaccess para restringir acceso externo y redirigir a login
# ----------------------------------------

# Habilitar el motor de reescritura
RewriteEngine On

RewriteRule ^/?$ /webProduccionNV/production/login.php [R=302,L]

# ----------------------
# Permitir recursos estáticos (CSS, JS, imágenes)
# ----------------------
RewriteCond %{REQUEST_FILENAME} \.(css|js|png|jpg|jpeg|gif|ico|svg)$ [NC]
RewriteRule ^ - [L]

# ----------------------
# Permitir acceso a login.php y logout.php (evita bucle)
# ----------------------
RewriteCond %{REQUEST_URI} ^/webProduccionNV/production/login\.php$ [OR]
RewriteCond %{REQUEST_URI} ^/webProduccionNV/production/logout\.php$
RewriteRule ^ - [L]

# ----------------------
# Redirigir a login si IP NO es local (no es LAN)
# ----------------------
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{REMOTE_ADDR} !^::1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.
RewriteCond %{REMOTE_ADDR} !^10\.
RewriteCond %{REMOTE_ADDR} !^172\.(1[6-9]|2[0-9]|3[0-1])\.

# Redirección EXTERNA (cambia la URL del navegador)
RewriteRule ^.*$ /webProduccionNV/production/login.php [R=302,L]

# ----------------------
# Seguridad: bloquear acceso a archivos sensibles
# ----------------------
<Files ".htaccess">
  Order allow,deny
  Deny from all
</Files>

<Files "*.log">
  Order allow,deny
  Deny from all
</Files>

# ----------------------
# Evitar listado de directorios
# ----------------------
Options -Indexes

# ----------------------
# Headers de seguridad para archivos PHP
# ----------------------
<FilesMatch "\.(php)$">
    Header always set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
    Header always set Pragma "no-cache"
    Header always set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-Frame-Options "DENY"
    Header always set X-XSS-Protection "1; mode=block"
</FilesMatch>

# Protección adicional para archivos de sesión
<Files "session.php">
    Header always set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
</Files>

# ----------------------
# Páginas de error personalizadas
# ----------------------
ErrorDocument 403 /webProduccionNV/production/login.php
ErrorDocument 404 /webProduccionNV/production/login.php
