• Redireccionar una web www a no www

    Últimamente he cambiado todas mis webs de forma que no usen el subdominio www. Ha sido más una decisión política que una decisión técnica. Incluso he quitado el alias www de la configuración del sitio en apache. Inmediatamente he comenzado a tener problemas:

    Las personas que buscaban hacks4geeks.com precedida por www. accedían a la IP del servidor, pero no al sitio hacks4geeks.com. Es decir, en el navegador, una vez ingresada la dirección hacks4geeks.com, esta no cambiaba y permanecía allí, pero apache estaba mostrando su sitio por defecto de (/var/www/). En realidad es completamente lógico porque es el sitio que se muestra cuando se ingresa la IP numérica del servidor.

    Entonces, en mi inocencia, creí que sólo con direccionar hacks4geeks.com a hacks4geeks.com mediante la edición del .htaccess agregando las siguientes líneas:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    … dentro de la condición:

    <IfModule mod_rewrite.c>
    ...
    </IfModule>

    … iba a ser suficiente para que cualquier petición www. sea dirigida a su correspondiente no www. Pero claro, no contemplé que, al haber borrado el Alias en cada .conf de cada sitio, el servidor, al recibir una dirección precedida por www. jamás acabaría dirigiendo al usuario al .htaccess correspondiente dado que siempre iba a permanecer en el sisito por defecto de apache (/var/www/). Así que tuve que volver a crear el alias www en cada sitio en el que lo había borrado.

    CONCLUSIÓN: Las dos líneas de código a meter en el .htaccess sólo redireccionan de www a no www cuando el alias www esté contemplado en: /etc/apache2/sites-available/sitio.conf


    Deja una respuesta