Difference between revisions of "Search Engine Friendly URLs/es"

From Joomla! Documentation

Line 7: Line 7:
 
Un buen ejemplo de enrutamiento es la dirección URL del artículo "Welcome to Joomla!", de los datos de ejemplos.
 
Un buen ejemplo de enrutamiento es la dirección URL del artículo "Welcome to Joomla!", de los datos de ejemplos.
  
* Sin SEF URLs activado, la dirección URL <code><nowiki>http://www.example.com/index.php?option=com_content&view=article&id=1:bienvenido-a-joomla&catid=1:latest-news&Itemid=50</nowiki></code>
+
* Sin las URLs SEF activadas, la dirección URL sería <code><nowiki>http://www.example.com/index.php?option=com_content&view=article&id=1:welcome-to-joomla&catid=1:latest-news&Itemid=50</nowiki></code>
* Con SEF URLs y mod_rewrite, <code><nowiki>http://www.example.com/index.php/the-­news/1-­latest­-news/1­-bienvenido-a-joomla</nowiki></code>
+
* Con las URLs SEF y mod_rewrite, desactivado <code><nowiki>http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla</nowiki></code>
* Tanto con SEF URLs y mod_rewrite, <code><nowiki>http://www.example.com/the-­news/1­-latest-­news/1-­bienvenido-a-joomla</nowiki></code>
+
* Tanto con SEF URLs y mod_rewrite, activado <code><nowiki>http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla</nowiki></code>
  
 
Las URLs amigables en los buscadores, pueden activarse mediante la activación de las "'URLs amigables"' en la opción "Configuración Global". Esta opción está activada por defecto en Joomla! 1.6. Para más información véase [[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|Habilitar Búsqueda inteligente (SEF) URLs]].
 
Las URLs amigables en los buscadores, pueden activarse mediante la activación de las "'URLs amigables"' en la opción "Configuración Global". Esta opción está activada por defecto en Joomla! 1.6. Para más información véase [[S:MyLanguage/Enabling Search Engine Friendly (SEF) URLs|Habilitar Búsqueda inteligente (SEF) URLs]].

Revision as of 14:43, 9 March 2014

Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Kiswahili • ‎Nederlands • ‎català • ‎español • ‎français • ‎português • ‎português do Brasil • ‎فارسی • ‎中文(台灣)‎ • ‎日本語

Las URLs Amigables a los Buscadores (SEF),legibles por humanos o [semántica] son URLs que tienen sentido para los seres humanos y los buscadores, porque explican la ruta a la página concreta que apuntan. Desde la versión 1.5, Joomla! es capaz de crear y procesar URLs en cualquier formato, incluyendo URLs SEF. Esto no depende de la reescritura de URL ejecutada por el servidor web, por lo que funciona incluso si Joomla! ejecuta un servidor distinto de Apache con el módulo mod_rewrite. Las URLs SEF siguen cierto patrón fijo, pero el usuario puede definir un short descriptive text (alias)|Alias|texto descriptivo corto (alias) para cada segmento de la URL.

Internamente, la parte local de una URL SEF (la parte después del nombre de dominio) se llama "ruta"'. Por lo tanto, la creación y el procesamiento de las URLs SEF se conoce como "enrutamiento", y el código correspondiente es llamado un '"enrutador"'.

Un buen ejemplo de enrutamiento es la dirección URL del artículo "Welcome to Joomla!", de los datos de ejemplos.

  • Sin las URLs SEF activadas, la dirección URL sería http://www.example.com/index.php?option=com_content&view=article&id=1:welcome-to-joomla&catid=1:latest-news&Itemid=50
  • Con las URLs SEF y mod_rewrite, desactivado http://www.example.com/index.php/the-­news/1-­latest­-news/1­-welcome­-to­-joomla
  • Tanto con SEF URLs y mod_rewrite, activado http://www.example.com/the-­news/1­-latest-­news/1-­welcome-­to­-joomla

Las URLs amigables en los buscadores, pueden activarse mediante la activación de las "'URLs amigables"' en la opción "Configuración Global". Esta opción está activada por defecto en Joomla! 1.6. Para más información véase Habilitar Búsqueda inteligente (SEF) URLs.

Preguntas frecuentes

¿Qué significan los números en la URL?

Si comparamos la URL antigua y la nueva, podemos ver en la URL antigua los números,
http://www.example.com/index.php?option=com_content&view=article&id=1:bienvenido-a-joomla&catid=1:latest-news&Itemid=50

y en la URL nueva:

http://www.example.com/the-­news/1­-latest-­news/1-­bienvenido-a­-joomla

Estos números son los parámetros que Joomla! necesita para obtener la dirección URL interna y mostrar la página que desea ver. (En este caso, el primer número uno es la ID de la categoría, el segundo número uno es la ID del artículo).

Ya no hay index.php en la URL. ¿Puedo borrar ahora el archivo?

¡No! El URL no contiene index.php, pero internamente el mod_rewrite se redirigirá a la ruta original sin mostrarlo.

¿Cuál es el valor del Alias? y ¿cómo se crea?

El Alias aparece debajo, o al lado, del campo Título, en los Artículos, Categorías, Secciones y Elementos de Menú. En Joomla! se puede crear un alias automáticamente. El automatismo del alias utiliza el título. Todas las letras mayúsculas cambian a minúsculas. Los espacios y caracteres especiales no permitidos en una dirección URL; se cambian por guiones.

Quiero poner un valor propio para el Alias.

Si no le gusta el alias proporcionado por Joomla!, puede introducir, en ese campo, un valor a su elección. Muchas personas opinan que usar bien las palabras clave en la URL, ayuda a la optimización del motor de búsqueda. Puede hacerse mediante la inclusión de las palabras clave en el título, tanto si crea el alias Joomla como si lo crea personalmente.

¿Cómo es el Alias utilizado en una URL?

Para un elemento de menú, Joomla! utiliza el alias como la dirección URL del conector. Suponga que utiliza las dos primeras opciones de URL SEF y crea un elemento de menú denominado Productos. Su URL sería example.com/productos.

Joomla! también utiliza los valores de clave principal de datos dentro de la URL para ayudar al enrutador a navegar a la página correcta. Continuando con el ejemplo anterior, si el elemento de menú productos era un artículo/categoría Blog, en el enlace del título y/o en Leer más, el vínculo al artículo tendría tres partes:

  • La dirección URL del menú sería example.com/products;
  • Además, la clave principal para la categoría y el alias Categoría - 32 frutas;
  • Además, la clave principal para el artículo y el alias Artículo - 1-manzana;

La dirección URL completa es: http://example.com/productos/32-fruta/1-apple

¿Cómo puedo deshacerme de los números de la SEF URLs?

Los números de la SEF URL son necesarios para el enrutador de Joomla! para saber cómo dirigir el tráfico en el sitio. Una vez que la lógica del enrutador se estabiliza, se pueden desarrollar plugins de terceros para aumentar las capacidades del enrutador permitiendo más opciones al sistema. En ese momento probablemente se eliminarán los números de la URL.

Formatos de Ruta y el mecanismo de enrutamiento

Esta sección describe el mecanismo de enrutamiento del núcleo (built-in) de Joomla!. Las extensiones de enrutamiento pueden cambiar la forma en las rutas que se crean en el sistema.

Formatos de Ruta

Para describir el mecanismo de enrutamiento de Joomla! con más detalle, primero necesitamos definir lo que denominamos "'ruta. Supongamos que Joomla! se ha instalado en http://example.com/sites/primera/. La ruta de instalación es generalmente conocida como la '"base de la URL"'. Un posible ejemplo sería la dirección URL http://example.com/sites/primera/productos/32-fruta/1-apple. La primera parte de esta URL es la dirección URL base antes mencionada y ni Joomla! ni cualquier enrutador componente puede crear direcciones URL con una primera parte distinta. La segunda parte, <código>productos/32-fruta/1-apple, es una "'ruta"', que consta de tres "'segmentos"'.

El primer segmento de una ruta es, para las URL normales, el alias de un elemento de menú. La URL SEF se dice que enruta a través de ese elemento de menú. Los otros segmentos se determinan en su totalidad por el enrutador del componente que proporciona el tipo de elemento de menú. El tipo de elemento de menú Categoría-Blog'", por ejemplo, es proporcionada por el componente Contenido, y por lo tanto el enrutador de ese componente es el responsable de la construcción y análisis de los segmentos restantes.

También es posible (para extensiones) pedir al sistema, crear una ruta sin necesidad de suministrar un elemento de menú. En ese caso, el sistema suele decidir crear una ruta especial que tiene la palabra componente como primer segmento. Estas rutas se crean utilizando un formato fijo: el nombre del componente (sin el encabezamiento com_) se selecciona como el segundo segmento y los parámetros del resto de segmentos.

Limitaciones

Es importante tener en cuenta que la creación de un elemento de menú es la "única" forma en que un usuario de Joomla! define la ruta que conduce a un componente específico. Es posible, sin embargo, crear una ruta sin necesidad de mostrarla en el sitio (es decir, en un menú). Un método frecuentemente aplicado es, crear un elemento de menú en un menú que no se muestra en ninguna parte. Dicho menú se suele llamar un, menú oculto.

El párrafo anterior implica que no es posible hacer una componente responsable de el manejo de todas las rutas. Por ejemplo, no es posible especificar que la dirección URL http://ejemplo.com/elalias debe mostrar el contenido del artículo con el alias elalias, donde elalias puede ser cualquier palabra. Si necesita hacerse esto para unos cuantos artículos, los elementos de menú pueden crearse manualmente para estos. De todas formas, se necesita una extensión de enrutamiento.

Este mecanismo de enrutamiento, por lo tanto no es tan flexible como a veces requieren los usuarios. En cambio, tiene una gran ventaja: se reduce la posibilidad de rutas ambiguas (rutas que podrían conducir a dos páginas diferentes). El primer segmento de una ruta es siempre un alias de elemento de menú, el sistema sabe inmediatamente que debe utilizarse el enrutador del componente, para analizarlo.

Detalles De Implementación

Manipulación De Rutas

"En esta sección se describe la implementación de enrutamiento. Si es un programador de componentes, vea Soporte SEF Url en su componente."

Las rutas de Joomla se crean y resuelven mediante the JRouter class. Esta clase se ve en la raíz del componente actualmente activo (especificado en el parámetro option en la cadena de consulta) e incluye router.php en el directorio raíz de dicho componente. A continuación, llama a una de las dos funciones: una para crear la SEF URL y otra para interpretar la SEF URL.

La clase JRouter se invalida por el CMS de Joomla en <código>/includes/router.php. En este fichero, el construir y analizar funciones, se reemplaza correctamente por construir y analizar las direcciones URL para el CMS de Joomla.

El archivo router.php, de cada componente (por ejemplo, /components/com_content/router.php) debe contener las dos funciones siguientes:

  • ContentBuildRoute - esto construye la SEF URL
    • Parameters
      • $query - este es el nombre de un array que contiene las variables de querystring
    • Devuelve: Un array de segmentos en los que cada segmento esté separado por un '/' cuando más tarde combinan para crear la dirección URL real (los elementos del array no deben contener caracteres '/')
  • ContentParseRoute - este interpreta el SEF URL
    • Parameters
      • $segments - se trata de un array que contiene los segmentos de la dirección URL solicitada.
    • Returns: un nombre => valor del array de las variables de querystring a los mapas del enlace

El Plugin SEF

El "Sistema - SEF de Joomla - hereda el plugin de JPlugin y ejecuta el onAfterRender() función. En esta función, el cuerpo de la respuesta que se envía al navegador se recupera mediante JResponse::getBody(). El cuerpo de la respuesta entonces busca los enlaces que contengan /index.php..., y las reemplaza por una dirección SEF URL correcta, llamando a JRoute::_("url").

JRoute construye las URLs SEF creando una instancia al objeto JRouter y solicitando que se construya el enlace correcto de la pasado en el URL..

Manipulación de las SEF URLs

Por defecto las URLs SEF se manipulan por el objeto JRouterSite (de /includes/router.php) y se llama por una llamada a JApplication::route() en el index.php. Esta llamada se realiza en la variable $app que en realidad es una instancia de JSite (de /includes/application.php).

JApplication::la ruta() tiene un resultado no destructivo sobre <código>$_GET array. Es decir, <código>JApplication::la ruta() establece variables en $_GET llamando a JRequest::set() con el indicador de sobrescribir establecido en false. Así, si un nombre de variable se devuelve desde JRouter::la ruta(), que está ya en $_GET, no va a poner ese valor en $_GET. Esto permite el enrutamiento personalizado.

Enrutamiento personalizado

Joomla le permite crear su propio mecanismo de enrutamiento. Con el fin de crear este mecanismo debe tener un plugin que reemplace la función JPlugin::onAfterInitialise(). Esta función analiza la URL y crea las variables necesarias en $_GET antes de que el estándar de enrutamiento de Joomla se realice.

Ver Crear un plugin de sistema para aumentar el JRouter como ejemplo.

Categoría:URLs amigables en los buscadores