Freym PC Blog

Cuando es la IA quien la lía

Admin
November 21, 2025
Cuando es la IA quien la lía
Translate to:

La idea es implementar el ping en www.dominio.com pero no en dominio.com, resolviendo ambos la misma IP

Para implementar un endpoint HTTP de "ping" que responda en el subdominio www.dominio.com pero no en dominio.com, aunque ambos resuelvan a la misma IP, puedes hacerlo distinguiendo las peticiones por el encabezado Host HTTP en tu servidor web o aplicación.

Cómo hacerlo:


1. En tu servidor web (Apache, Nginx, etc.)

Configura hosts virtuales distintos para dominio.com y www.dominio.com en Apache o bloques server en Nginx, apuntando ambos al mismo directorio o aplicación pero con configuración distinta:

  • En el host virtual o bloque para www.dominio.com, habilita la ruta /ping para responder con status 200 (pong).
  • En el host virtual o bloque para dominio.com, no implementes esa ruta o hazla devolver error 404 o similar.

Ejemplo simplificado en Nginx:

server {
    server_name dominio.com;
    location / {
        # Aplicación normal sin /ping
        try_files $uri $uri/ =404;
    }
    location /ping {
        return 404;
    }
}

server {
    server_name www.dominio.com;
    location / {
        # Aplicación normal, con /ping habilitado
        try_files $uri $uri/ =404;
    }
    location /ping {
        add_header Content-Type text/plain;
        return 200 'pong';
    }
}

2. En la aplicación (si usas una sola app que maneja ambos dominios)

Dentro del código, verifica el hostname recibido en la cabecera Host. Si es www.dominio.com, responde al endpoint /ping normalmente. Si es dominio.com, no respondas o devuelve error.

Ejemplo en Node.js con Express:

app.get('/ping', (req, res) => {
  if (req.headers.host === 'www.dominio.com') {
    res.status(200).send('pong');
  } else {
    res.status(404).send('Not Found');
  }
});

3. Consideraciones DNS y red

  • Ambos dominio.com y www.dominio.com apuntan a la misma IP.
  • El servidor utiliza las cabeceras HTTP para distinguir qué host fue consultado.

Resumen

  • No hay forma de que ICMP ping (a nivel IP) distinga subdominios, porque ambos resuelven a la misma IP y el ping funciona a nivel red.
  • Pero a nivel HTTP (puerto 80/443) sí puedes distinguir subdominios y decidir qué app o ruta responde.
  • Configura virtual hosts distintos o maneja la cabecera Host dentro de la app para habilitar /ping solo en www.dominio.com.

Si quieres, puedo ayudarte a armar la configuración para tu servidor web o framework web específico.

¿podrías elaborar el ejemplo para apache2?

Aquí tienes un ejemplo detallado para configurar Apache2 con dos VirtualHosts distintos, uno para dominio.com y otro para www.dominio.com, donde solo el subdominio www.dominio.com responde a un endpoint /ping:


1. Crear directorios para cada sitio (si no existen)

sudo mkdir -p /var/www/dominio.com/public_html
sudo mkdir -p /var/www/www.dominio.com/public_html

Puedes poner archivos o index.html habilitando diferencias si quieres.


2. Crear archivo de configuración para dominio.com:

Archivo: /etc/apache2/sites-available/dominio.com.conf

<VirtualHost *:80>
    ServerName dominio.com
    DocumentRoot /var/www/dominio.com/public_html

    # No existe el ping o devuelve 404
    <Location /ping>
        Require all denied
    </Location>

    ErrorLog ${APACHE_LOG_DIR}/dominio.com-error.log
    CustomLog ${APACHE_LOG_DIR}/dominio.com-access.log combined
</VirtualHost>

3. Crear archivo de configuración para www.dominio.com:

Archivo: /etc/apache2/sites-available/www.dominio.com.conf

<VirtualHost *:80>
    ServerName www.dominio.com
    DocumentRoot /var/www/www.dominio.com/public_html

    # Habilitar el endpoint /ping que responde "pong"
    Alias /ping /var/www/www.dominio.com/ping.php

    <Files "ping.php">
        Require all granted
    </Files>

    ErrorLog ${APACHE_LOG_DIR}/www.dominio.com-error.log
    CustomLog ${APACHE_LOG_DIR}/www.dominio.com-access.log combined
</VirtualHost>

Crea el archivo /var/www/www.dominio.com/ping.php con este contenido:

<?php
echo "pong";
?>

4. Habilitar ambos sitios y reiniciar Apache

sudo a2ensite dominio.com.conf
sudo a2ensite www.dominio.com.conf
sudo systemctl reload apache2

5. Probar el funcionamiento


Notas

  • Ambos dominios pueden apuntar a la misma IP DNS.
  • Apache usa el encabezado HTTP Host para seleccionar el VirtualHost adecuado.
  • Puedes personalizar el endpoint /ping con cualquier lenguaje o respuesta que quieras.

¿Quieres un ejemplo para HTTPS (SSL) o para otro lenguaje/framework?

Comments (0)

No comments yet. Be the first to comment!