Recursos web, diseño, joomla!, tutoriales, opinión, algunas noticias...

Suscríbete a través del feed RSS
Recibe los últimos artículos a tu e-mail
Realizar una búsqueda

URLs amigables en Joomla! Compartelo!
martes, 14 de agosto de 2007

Creo que una imagen resume la idea de este tutorial :P

 

URLs Amigables


Las URLs amigables u optimizadas para buscadores es una opción que Joomla! trae para activar en su configuración. Básicamente pasamos de tener una URL de este tipo:

 

www.midominio.com/index.php?option=com_content&task=view&id=5&Itemid=6

 

A una de este otro tipo:

 

:: www.midominio.com/content/view/5/6/ 

 

Lo cual no está mal, pero en verdad nosotros andamos buscando una URL mas bien: 

 

:: www.midominio.com/seccion/categoria/nombre-del-articulo/ ó
:: www.midominio.com/seccion/nombre-del-articulo/ ó
:: www.midominio.com/nombre-del-articulo/

 

Para eso debemos instalar un componente Search Engine Friendly URLs. En este caso usaremos sh404SEF , uno bajo licencia libre, con infinidad de parámetros para obtener máximos resultados. Utilizaremos su última versión 1.2.4.s junto a Joomla! Spanish 1.0.13.

 

 

Pasos previos a la instalación de sh404SEF

 

Antes de empezar con el componente debemos realizar un pequeño trabajo previo. Lo primero que haremos será habilitar  la Optimización SEO para buscadores en la administración de Joomla!. Para eso vamos a Sitio --> Configuración Global --> Pestaña SEO. Allí en la opción URLs amigables para buscadores tildamos SI, aceptamos la advertencia y guardamos la configuración.

 

Optimización para buscadores


Lo siguiente será entrar a nuestro sitio por FTP y buscar el archivo htaccess.txt que se encuentra en la carpeta raíz. Lo abrimos con un editor [ Notepad++ por ejemplo ] y concentraremos la atención desde la línea 66 hasta 91. Nos encontraremos con lo siguiente...

 

 

htaccess.txt
  1. ########## Begin - Joomla! core SEF Section
  2. ############# Use this section if using ONLY Joomla! core SEF
  3. ## ALL (RewriteCond) lines in this section are only required if you actually
  4. ## have directories named 'content' or 'component' on your server
  5. ## If you do not have directories with these names, comment them out.
  6. #
  7. RewriteCond %{REQUEST_FILENAME} !-f
  8. RewriteCond %{REQUEST_FILENAME} !-d
  9. #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]     ##optional - see notes##
  10. RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
  11. RewriteRule ^(content/|component/) index.php
  12. #
  13. ########## End - Joomla! core SEF Section
  14.  
  15.  
  16.  
  17. ########## Begin - 3rd Party SEF Section
  18. ############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
  19. #
  20. #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]     ##optional - see notes##
  21. #RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
  22. #RewriteCond %{REQUEST_FILENAME} !-f
  23. #RewriteCond %{REQUEST_FILENAME} !-d
  24. #RewriteRule (.*) index.php
  25. #
  26. ########## End - 3rd Party SEF Section

 

Lo que haremos será descomentar algunas líneas [ los comentarios comienzan con # ] y comentar otras, quedando como resultado:

 

 

htaccess.txt
  1. ########## Begin - Joomla! core SEF Section
  2. ############# Use this section if using ONLY Joomla! core SEF
  3. ## ALL (RewriteCond) lines in this section are only required if you actually
  4. ## have directories named 'content' or 'component' on your server
  5. ## If you do not have directories with these names, comment them out.
  6. #
  7. #RewriteCond %{REQUEST_FILENAME} !-f
  8. #RewriteCond %{REQUEST_FILENAME} !-d
  9. #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]     ##optional - see notes##
  10. #RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
  11. #RewriteRule ^(content/|component/) index.php
  12. #
  13. ########## End - Joomla! core SEF Section
  14.  
  15.  
  16.  
  17. ########## Begin - 3rd Party SEF Section
  18. ############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
  19. #
  20. RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]     ##optional - see notes##
  21. RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
  22. RewriteCond %{REQUEST_FILENAME} !-f
  23. RewriteCond %{REQUEST_FILENAME} !-d
  24. RewriteRule (.*) index.php
  25. #
  26. ########## End - 3rd Party SEF Section

 

O sea que las líneas bajo el título "Begin - Joomla! core SEF Section" fueron deshabilitadas [ agregando al comienzo de cada línea # ] y las líneas bajo el título "Begin - 3rd Party SEF Section" fueron habilitadas [ se les quitó el # ]. Guardamos el archivo y lo subimos. Luego lo renombramos .htaccess [ es decir que pasa de tener el nombre htaccess.txt a .htaccess ]

 

 

Instalación de  sh404SEF

 

Descargamos el componente . Luego en la administración de Joomla! vamos a Instaladores --> Componentes. Le damos Examinar y seleccionamos el componente descargado. Click en Subir a archivo e instalarlo, Joomla! comenzará la instalación de componente. Una vez hecho nos toparemos con una pantalla de bienvenida, explicando la función del componente, características, configuración y changelog. Podemos leerlo todo o hacer scroll hasta abajo y hacer click en Continuar.

 

ADVERTENCIA: Antes de empezar a explicar la configuración, vale aclarar que sh404SEF posee un pequeño problema con el archivo de lenguaje en español , el cual hace que nuestro sitio este down y muestre un mensaje del tipo: 

Are we debugging???
Killed at line 106 in sef404.php: HEADERS ALREADY SENT (200)
URL=http://www.dominio.com/option=com_frontpage&Itemid=1:
OPTION=com_frontpage:

Para solucionar el problema buscamos el archivo de lenguaje spanish.php [administrator/components/com_sef/language/], lo abrimos con nuestro editor y vamos hacia el final del documento. Veremos que en la línea 380, después de '?>' existen dos líneas más vacias [381 y 382]. Lo que haremos será borrar estas dos líneas vacías, es decir que el final del documento debe ser la línea 380. Guardamos y listo, ya podemos comenzar a configurar sh404SEF.

 

 

Configuración de sh404SEF

 

En la administración de Joomla! vamos a Componentes --> sh404SEF. Allí seleccionamos la opción Configuración de sh404SEF.

 

Configuracion de sh404SEF


Lo primero que hacemos es verificar que el componente esté habilitado en la pestaña Main.  sh404SEF ya viene con varios parámetros predefinidos para hacer el trabajo más fácil. Básicamente las opciones más importantes que nos interesan son:

 

 

Pestaña Main:

 

  • ::Caracter de reemplazo y  Page spacer character: Es el símbolo que queremos que aparezca en la URL para separar las palabras y los distintos signos [ como los signos de admiración, de pregunta, numerales, etc ]. Por default el caracter de reemplazo es el guión alto '-' pero podemos poner guión bajo '_' , suma '+' o el que mejor nos venga.
  • ::Sufijo: Si queremos que nuestras URLs terminen en un sufijo del tipo .html ó .php o el que queremos. Si lo dejamos vacío a esta opción no tendremos sufijo.
  • ::Todo en minúsculas: Si deseamos que las palabras respeten las letras mayúsculas originales o que transforme todo en minúscula.
  • ::Insert numerical id in URL: Si queremos añadir a la URL un identificador dependiendo de la fecha de creación de cada artículo.
  • ::Página 404 por defecto: Con el panel derecho podemos editar y crear nuestra página 404 personalizada.

 


Pestaña Plugins:

 

  • ::sh404SEF permite la optimización de varios componentes conocidos de Joomla! como Virtuemart, Community Builder, Fireboard entre otros. Si utilizas alguno de ellos, puedes acceder a estas opciones para mejorar el rendimiento.


Pestaña  Advanced:

 

  • ::Aquí podemos manejar un añadido de  sh404SEF de guardar las direcciones en la cache para optimizar el tiempo de carga de nuestra página. Además podemos limitar la memoria cache.
  • ::Rewriting mode: Si no tenemos la opción mod_rewrite habilitado en nuestro servidor apache podemos utilizar otros métodos para hacer funcionar el componente [ aún en fase de experimentación]
  • ::Otras opciones son las de redireccionar las antiguas URLs a las nuevas optimizadas [ por default SI ] y manejo de URLs seguras [https]

 


Pestaña By component:

 

  • ::Podemos especificar algunos parámetros de ciertos componentes como ser guardados o no en la cache, la forma en que se mostrara su URL, si deseamos traducirlo [ en caso de tener sitios en otros lenguajes ]


Pestaña Meta/SEO:

 

  • ::Otro de los agregados que tiene el componente es el de manejar de forma automática la información metatag. Además nos dá la posibilidad de agregar la etiqueta <h1> a los títulos de los artículos para mejorar la indexación de los robots.


Guardamos la configuración. Nos aparecerá una advertencia, le damos Aceptar. Volvemos al panel de administración del componente.

Con esto ya hemos configurado mayormente el componente, sin embargo eso no es todo. También podemos agregar URLs personalizadas [opción Ver/Editar SEF Urls], redirecciones personalizadas [opción Ver/Editar Redirecciones personalizadas], Exportar o importar URLs, Consultar la documentación, y varias opciones más.

En conclusión,  sh404SEF es un componente indispensable si deseamos posicionar nuestra web y obtener visitas desde los buscadores.

 

 

Tutorial relacionado:  Páginas con títulos diferentes en Joomla!

 

 

 


¿Te interesó este artículo?Puedes suscribirte al feed RSS ó dejar tu email para recibir las últimas noticias, tal como lo hacen actualmente las 2513 personas que siguen al blog




 Comentarios (60)
 51 Escrito por Yobani website, el 09-04-2008 01:17
Hola Leandro 
 
Felicitaciones por la información que compartes ... tengo una duda ... instale en local el componente para probarlo ... tengo joomla 1.0.13 
 
Si tengo desactivo SEO todo funciona bien ... pero si lo activo al querer entrar a algunos articulos me arroja el siguiente error: 
 
Fatal error: Call to undefined function: getmenutitle() in c:\appserv\www\joomla\components\com_sef\sef_ext.php on line 409 
 
Sabes a que se puede deber este problema??? 
 
Gracias 
 
www.soloenred.com
 52 Escrito por alex, el 22-05-2008 20:16
No es por decir pero este componente no sirve. No pierdan su tiempo buscando soluciones para este componente y busquen otro mejor.
 53 Escrito por esteban q, el 03-06-2008 20:17
pues alex... por que no nos dices cual componente te ha servido?
 54 Escrito por Javier website, el 27-06-2008 03:06
Estimados, excelente blog, me ayudado muchisimo, pero yo instale el joomla 1.5.3, como se configura el sh404SEF para esta nueva versión?? abri el htaccess.txt yes un poco diferente, ademas no existe el archivo spanish.php, ayuda plis!! 
gracias
 55 Escrito por nachillo, el 06-07-2008 12:23
Excelente, gracias... problemas con el index.php/ no puedo quitarlo ya que al bajarlo no tengo el "Advanced" 
 
Gracias de nuevo!
 56 Escrito por carlos website, el 06-07-2008 13:46
pues para los que tienen el problema que no les aparece la pestaña Advanced, lo que tienes que hacer es lo siguiente. 
 
cuando habren el componente del lado derecho dice  
Click here to switch to standard display (with only main parameters), le dan clic y es todo les aparece la pestaña Advanced...suerte a todos
 57 Escrito por juan david website, el 06-08-2008 01:50
excelente todo, pero tengo dos problemas, tengo el joomla 1.5.5. y pues cuando le doy guardar a htaccess no me deja colocarle el punto antes, .htaccess pos lo estoy utilizando sin el, pero me gustaria quitarle el php.index, pero al activarlo me sale el error 404 y e igual el htaccess es diferente no se que hacer, si alguien me puede hacer el favor de ayudarme pleace!!
 58 Escrito por GastonG website, el 16-08-2008 18:08
Hola Leandro, muy buen tutorial de urls amigables. 
Me atrevo a escribirte porque tengo un problema que la verdad no le encontre solucion y las ayudas de joomla la verdad me desalentaron. 
El tema es asi, en su momento active la opcion de urls amigables en mi web y mi servidor me bloqueo la web por exceso de carga en el servidor. Despues lei en la ayuda de joomla que para usar SEF necesitas practicamente un servidor dedicado porque SEF hace miles de consultas inecesarias a la db del sitio. 
Con este modulo se evita eso?
 59 Escrito por Armando Lira website, el 09-10-2008 22:43
oye gracias por el tutorial, solo que cuando selecciono mod_rewrite y le doy guardar me dice que debo especificar una unrl para la redireccion, sabes alguna solucion^?
 60 Escrito por Vicente de Pablo website, el 18-11-2008 14:50
Enhorabuena por el tutorial!!! 
También he encontrado una cosa que buscaba en los comentarios. 
 
Gracias a todos!


  • Por favor, mantenga el tópico de los mensajes en relevancia con el tema del artículo.
  • Lenguaje inapropiado será borrado.


Nombre:
E-mail:
Sitio Web:
Comentario:

Código:* Code



 
< Anterior   Siguiente >

Puedes suscribirte al blog de dos formas

Ingresando tu e-mail:

Utilizando el canal RSS:

Realizar una búsqueda