Subdominio o subdirectorio, esa era la cuestión

September 3, 2008 at 18:27

Mis lectores más observadores (y el único con el que he hablado del tema no ha demostrado serlo 😛 te espero en los comentarios) habrán notado que el nuevo blog está alojado en una URL distinta al anterior: ahora está en blog.deigote.com mientras que antes era deigote.com/blog.

Sin embargo, es muy probable que la entrada en la que se anuncia el nuevo blog, la cual está en el nuevo blog ( 🙄 ). ¿Cómo es posible que si la URL ha cambiado los enlaces para el feed sigan siendo válidos? O una de dos: o mis lectores son muy poco observadores o pasotas, o tengo muy pocos lectores 😀 (yo pienso que es una mezcla de los dos 😥 )

Volviendo a la pregunta anterior, la respuesta es haber usado un simple URL rewriting gracias al módulo mod_rewrite de Apache. Gracias a este módulo, es posible reescribir una URL cuando esta llega al servidor web, cambiando las cabeceras de la petición, y redirigiéndola a donde corresponde tras realizar el cambio.

En mi caso, he necesitado las siguientes reglas para el dominio deigote.com:

RewriteRule ^blog$ http://blog.deigote.com [L]
RewriteRule ^blog/(.*) http://blog.deigote.com/$1 [L]

La primera de ellas sirve para cuando la URL entrante es http://deigote.com/blog (sin un slash o barra del siete 🙂 al final). La segunda sirve para el resto de URLs que comiencen por http://deigote.com/blog. Seguro que algún lector (la esperanza es lo último que se pierde 😆 ) está pensando que ambas reglas se podrían fusionar en una como la siguiente:

RewriteRule ^blog(.*) http://blog.deigote.com$1 [L]

Es decir, eliminando los slash en la segunda regla para que englobe también el primer caso. El problema de hacer esto es que una URL del tipo http://deigote.com/blogstats sería redirigida a http://blog.deigote.comstats. Por ello, es mejor proteger todas las URLs con un slash al final y añadir una regla para el único caso en que no hace falta poner dicha barra (aunque quizá algún lector me corrija en este punto dándome una solución para unificar ambas reglas 🙂 ).

De esta manera, todos los enlaces anteriores, ya sean los del feed, entradas, comentarios, etcétera… siguen funcionando correctamente 🙂 .

PD: Si, tampoco es algo tan increible como para hacer una entrada tan larga, pero bueno, a mi me ha costado lo mío 😛 .

Parecidos razonables