Una URL limpia (clean URL) es la que no contiene parámetros técnicos ni variables en su estructura, por lo que son fáciles de comprender por el usuario:

http://www.ejemplo.es/catalogo/el_libro_de_la_selva

En contraposición, una URL sucia (o no limpia) es aquella que está formada por caracteres que la hacen de difícil comprensión, como, por ejemplo:

http://www.ejemplo.es/catalogo/index.php?q=254

Suele ser habitual que se identifique URL limpia con URL amigable (o pretty URL, o semantic URL, o friendly URL). En realidad, desde el punto de vista formal, son lo mismo. Lo que sucede es que en Drupal es necesario tener activadas las URLs limpias para que luego se puedan convertir en amigables por medio de un módulo (generalmente pathauto). Y esto es porque si solo tienes URLs limpias en Drupal, la URL que se forma a partir de una entrada será la del nombre del nodo que la contiene y su número de orden. Como lo que generalmente conviene es que la URL esté formada por el título de la entrada, es necesario emplear un módulo como el comentado anteriormente.

Tener URLs limpias en tu instalación de Drupal es muy importante desde varios puntos de vista, aunque destacan principalmente dos. Por un lado el posicionamiento, porque:

  • – si son cortas son más fáciles de recordar
  • – generan más tráfico, al ser más fáciles de recordar
  • – facilitan la lectura y la comprensión del contenido que contienen, incluso antes de entrar en ellas
  • – son más estéticas y dan una mayor sensación de seguridad y confianza.

Y, por otro, porque permiten crear ficheros robots.txt y sitemap.xml más precisos y exactos, facilitando el proceso de indexación del sitio. De hecho, en Drupal, si no hay URLs limpias es muy probable que tu fichero robots.txt esté mal formado y te genere errores en el informe de estado.

problemas en el módulo robots.txt por no tener las urls limpias

 

Lo cierto es que si se está haciendo la instalación en modo local, para test, o en un servidor dedicado, no suele existir problema alguno por parte de Drupal. Sin embargo, cuando trabajamos en otros entornos (principalmente servidores compartidos y hostings -especialmente gratuitos-) Drupal suele dar muchos errores y falsos positivos en lo que a la gestión de URLs limpias se refiere.

Los chicos de Drupal publicaron hace unos años un pequeño manual que van actualizando con cierta frecuencia, explicando cómo proceder en cada caso pero, sinceramente, creo que la cosa no terminan de explicarla del todo bien. De hecho, me recuerdan mucho a la gente del Consorcio W3C, con sus engorrosas explicaciones de cosas sencillas.

Como son muchas las veces que he tenido que explicar este proceso, he pensado que lo mejor era hacer una entrada en la que explicara qué hay que hacer. Para eso, he creado una cuenta en un hosting gratuito cualquiera y he realizado una instalación estándar de Drupal 7.x.

Paso 1. Verificar el estado de las URLs

Lo habitual suele ser que Drupal active por defecto las URLs limpas, pero si el hosting no está configurado correctamente, tendremos un problema.

– ¿Y por qué el hosting no está configurado correctamente?

– Para que las URLs puedan aparecer sin parámetros de configuración es necesario que sucedan una de estas dos cosas: que esté instalado el módulo mod_rewrite en Apache o que el fichero .htaccess esté configurado correctamente. Para lo primero no hay solución, ya que si estamos en un hosting compartido nunca podremos acceder a la configuración de Apache. Para la segunda opción sí hay solución, y es lo que explicaré aquí.

 

Para verificar el estado de las URLs limpias hay que acudir a:

Home -> Administración -> Configuración -> Búsqueda y medatados

donde accederemos a la información que necesitamos. Si no están activadas no encontraremos con algo parecido a esto:

mensaje de error con las urls limpias

Y, si ejecutamos el test, no dirá que ha fallado:

fallo en el test de urls limpias

Lo primero que tenemos que averiguar es si se trata de un falso negativo. En ocasiones, el test dice que ha fallado en su búsqueda de URLs limpias pero, en realidad, sí están activadas. Posiblemente por algún problema en la gestión de la caché, bien del cliente, bien de Drupal, aparece ese mensaje erróneo. En realidad saber si se trata de un falso negativo es sencillo: solo hay que mirar la URL de administración que en esos momentos aparece en el navegador. Si después del dominio aparece el siguiente conjunto de caracteres: ?q= significa que, efectivamente, no están activadas. Si aparece ese conjunto de caracteres estaremos ante un falso negativo, por lo cual, en realidad no tendremos problema alguno. Solo será necesario acudir al informe de estado, y veremos que el problema se ha solucionado.

Paso 2. Editar el fichero .htaccess

Si el problema persiste, la única forma que tenemos de solucionarlo es editando el fichero .htaccess que, como ya sabemos, permite ajustar determinadas configuraciones de Apache en el entorno para el que estamos trabajando.

A ese fichero se puede acceder tanto desde el administrador de ficheros del hosting como desde cualquier cliente FTP.

ubicación del fichero .htaccess en el administrador de ficheros del hosting

Una vez lozalizado el fichero debemos editarlo, y buscar dentro de él la llamada a la directriz RewriteBase / que, seguramente estará precedida de una almohadilla (#), lo que signifca que es un comentario y, como tal, no se ejecuta. Esa directriz es la que nos permitirá incluir URLs amigables en nuestro sitio que, al estar en un hosting compartido por más usuarios, es una carpeta raíz virtual, asignada a nuestro espacio.

editando el fichero .htaccess en el administrador de ficheros del hosting

Lo único que tenemos que hacer es eliminar la almohadilla, para que se cargue la directriz. Una vez hecho esto, guardamos el fichero. Si lo hemos editado desde el administrador de ficheros del hosting ya está todo hecho; si lo hemos hecho desde el cliente FTP lo más probable es que nos haya obligado a descargar el fichero y editarlo en local, por lo que tendremos que subirlo de nuevo al servidor.

editando el fichero .htaccess en el administrador de ficheros del hosting

Paso 3. Verificación final

A continuación volvemos otra vez al sistema de activación de URLs limpias de Drupal:

Home -> Administración -> Configuración -> Búsqueda y medatados

y nos debería aparecer esto, que es lo que permite activar definitivamente las URLs limpias:

verificación final

Lo marcamos, guardamos la configuración, y con el siguiente mensaje ya está listo todo:

ya están las urls limpias activadas

Paso 4. A veces todo esto falla

En ocaciones, y por problemas de la caché de Drupal, una vez que finalizamos el paso 3 e intentamos activas las URLs limpias, no aparece el cuadro para marcar esta opción. De hecho, sigue apareciendo un mensaje similar al segundo pantallazo que he incluido en esta entrada:

mensaje de error con las urls limpias

Si eso sucede, lo mejor es acceder directamente al activador de URLs limpias introduciendo la siguiente dirección en el navegador:

http://ejemplo.es/admin/config/search/clean-urls

o, si la cosa persiste en su cabezonería:

http://ejemplo.es/?q=admin/config/search/clean-urls

Eso nos llevará directamente a la opción que necesitamos activar, y listo. Ya puedes instalar pathauto y empezar a tener tus primeras URLS amigables.

mensaje de error con las urls limpias