domingo, 18 de mayo de 2008

URL amigables en Joomla

Bueno para el que no sepa lo que son las Url amigables se lo cuento rápidamente. Si habeis utilizado el gestor de contenidos Joomla alguna vez, habréis podido observar que cuando pichas en un enlace de tu dominio la url será algo como esto:

http://www.dominio.com/index.php?option=com_zoom&Itemid=42

Bien pues esta dirección es a mi gusto algo dificil de recordar, esto sería una Url poco amigable, además si tienes un portal web y quieres darlo a conocer y que aparezca lo más alto posible en el buscador de google, tienes que vigilar este tema ya que el motor de google penaliza url poco amigables como la del ejemplo anterior.

Bíen pues en este artículo os muestro como configurar vuestro Joomla y Apache para conseguir dicho fin.

En la configuración de tu apache tendrás un virtual host asignado para tu dominio, en el debes introducir la opción de AllowOverride All que permite que el .htaccess modifique la configuración de apache.

ServerName www.midominio.com

DocumentRoot "/usr/var/www/midominio"

AllowOverride All

Options None

En el directorio donde alojas Joomla encontrarás un fichero llamado htaccess.txt para usarlo deberás renombrarlo por .htaccess.

En el Backend de Joomla o panel de administración vete a Sitio > Configuración Global > SEO. y activa las opciones:

URLs amigables para buscadores: Presiona SÍ
Títulos dinámicos en las páginas: Presiona SÍ

Guarda tu configuración.

Con esto acabas de activar el componente que trae Joomla (versión 1.0.12) para implementar las Url Amigables, pero para mi gusto no es demasiado bueno así que instalaremos un componente de terceros.

Bájate el componente 404 SEF RC1 en español desde Joomlaspanish.org

Instala el componente ya sabes como es Backend>Instaladores> Instalar componente

Ahora debes abrir tu archivo .htaccess y descomentar las siguientes líneas:

########## Begin - 3rd Party SEF Section
############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
#
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php

#
########## End - 3rd Party SEF Section

Estas líneas son referentes a los SEF implementados por terceras partes, y si se te olvida descomentarlas el componente 404SEF no funcionará.

Listo. Ahora en vez de tener direcciones como:
http://www.dominio.com/index.php?opt...id=2&Itemid=75

Serán verá así:
http://www.dominio.com/nombre_relevante.html

Este componente tiene muchas opciones y entre ellas te permite editar el nombre asignado a cada url real, todo ello lo encontrareis en el panel del administrador o backend.

Lista de problemas encontrados

1) En las debian/ubuntu por defecto el modulo de Rewrite no viene instalado por defecto por lo que tendras que darlo de alta con el comando:

> a2enmod rewrite

> /etc/init.d/apache2 restart

1 comentario:

ATX dijo...

Gracias amigo, me fue de mucha utilidad!
Saludos