<?php

// Obtener el host solicitado (subdominio)
$host = $_SERVER['HTTP_HOST'];

// Extraer el subdominio (antes del primer punto)
$parts = explode('.', $host);
$subdomain = $parts[0];

// Construir la URL base con el subdominio
if (count($parts) > 2) {
    $baseUrl = "https://$subdomain.enciclo.es";
} else {
    $baseUrl = "https://enciclo.es";
}

// Obtener la ruta y los parámetros GET
$uri = $_SERVER['REQUEST_URI'];

// Preparar datos para el log
$logDir = __DIR__ . '/log';
if (!is_dir($logDir)) {
    mkdir($logDir, 0777, true);
}
$logDate = date('Y-m-d');
$logFile = $logDir . "/redirect_log_{$logDate}.csv";

$datetime = date('Y-m-d H:i:s');
$ip = $_SERVER['REMOTE_ADDR'] ?? '';
$referer = $_SERVER['HTTP_REFERER'] ?? '';
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$originalUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

// Si el archivo no existe, escribir la cabecera
if (!file_exists($logFile)) {
    $header = 'datetime,ip,original_url,referer,user_agent' . "\n";
    file_put_contents($logFile, $header, FILE_APPEND);
}

$logLine = sprintf(
    '"%s","%s","%s","%s","%s"\n',
    $datetime,
    $ip,
    $originalUrl,
    str_replace('"', '""', $referer),
    str_replace('"', '""', $userAgent)
);

file_put_contents($logFile, $logLine, FILE_APPEND);

// Comprimir el log del día anterior si no está comprimido
$yesterday = date('Y-m-d', strtotime('-1 day'));
$yesterdayLog = $logDir . "/redirect_log_{$yesterday}.csv";
$yesterdayGz = $yesterdayLog . '.gz';
if (file_exists($yesterdayLog) && !file_exists($yesterdayGz)) {
    $gz = gzopen($yesterdayGz, 'wb9');
    if ($gz) {
        $fp = fopen($yesterdayLog, 'rb');
        if ($fp) {
            while (!feof($fp)) {
                gzwrite($gz, fread($fp, 4096));
            }
            fclose($fp);
        }
        gzclose($gz);
        unlink($yesterdayLog);
    }
}

// Redireccionar permanentemente (301)
header("Location: {$baseUrl}{$uri}", true, 301);
exit();
