Las URLs friendly o URLs amigables son aquellas direcciones que describen el contenido de una página, además de ser fáciles de recordar y entender.
Las URLs de los artículos deben ser únicas, por lo que no se permite el uso de titulares o slug iguales, ya que provocarían un conflicto.
En caso que un artículo no tenga sección, tema o subtema, estos se omiten y no se agregan a la URL.
Al crear un nuevo articulo "Sin título" automáticamente se le agregará un número para evitar duplicados.
Si aplicas nuevas configuraciones de friendly URLs a un sitio ya existente debes tener en cuenta lo siguiente:
- Al regenerar los artículos, todas las URLs del sitio cambiarán a la versión nueva.
- Todos los artículos van a quedar con 3 URLs (antigua, nueva y URLs absoluta del directorio donde se encuentra el archivo). De esta forma puedes evitar los links rotos cuando compartas el enlace de un artículo antes aplicar una nueva configuración de Friendly URL.
En el archivo de configuración de Nginx (usualmente localizado en /etc/nginx/nginx.conf
), debes configurar las directivas colocando la configuración que requieras según la versión de URLs que eligas para el sitio, siempre reemplazando ext por la extensión de los artículos, por ejemplo: html.
### Friendly v1.0
rewrite ^/[^\/]+/([^\/]+)/([0-9]+)-([0-9]+)-([0-9]+)/([0-9]+)\.ext/$1/site/artic/$2$3$4/pags/$2$3$4$5.ext;
### Friendly v2.0
rewrite ^/([^\/]+)/.+?/([0-9]+)-([0-9]+)-([0-9]+)/([0-9]+)\.ext/$1/site/artic/$2$3$4/pags/$2$3$4$5.ext;
- El formato que tiene la versión 4.0 es de la forma:
/prontus_id/seccion/tema/subtema/titular
. - Un ejemplo de ello sería: http://www.altavoz.net/altavoz/servicios/ingenieria/desarrollo-de-sitios-web
### Friendly v4.0
rewrite "^\/([^\/]+)\/?.*?\/([^\/\.]{2})([^\/\.]{2})([^\/\.]+?)\/?$" /$1/site/friendly/links/$2/$3/$2$3$4.html;
Para habilitar las friendly URLs en Apache, previamente debes verificar que esté instalado el módulo mod_rewrite
Para asegurar que el módulo mod_rewrite
está instalado en el sistema operativo FreeBSD puedes ejecutar el siguiente comando:
httpd -t -D DUMP_MODULES
El cual entregará una lista de todos los modulos cargados; el que buscamos es el siguiente:
rewrite_module (shared)
En Ubuntu/Debian, se puede realizar con el siguiente comando:
/usr/sbin/apache2 -t -D DUMP_MODULES
RewriteEngine On
# Friendly URLs.
RewriteRule ^/[^\/]+/([^\/]+)/([0-9]+)-([0-9]+)-([0-9]+)/([0-9]+)\.ext/$1/site/artic/$2$3$4/pags/$2$3$4$5.ext
Debes reemplazar ext por la extensión de los artículos, por ejemplo: html.
RewriteEngine On
# Friendly URLs.
RewriteRule ^/([0-9a-zA-Z\-\_\.]+)/.+?/([0-9][0-9][0-9][0-9])\-([0-9][0-9])\-([0-9][0-9])/([0-9][0-9][0-9][0-9][0-9][0-9])\.ext$ /$1/site/artic/$2$3$4/pags/$2$3$4$5.ext
Se debe reemplazar ext por la extensión de los artículos, por ejemplo: html.
RewriteEngine On
# Friendly URLs.
RewriteRule "^([^\/]+)\/?.*?\/([^\/\.]{2})([^\/\.]{2})([^\/\.]+?)\/?$" /$1/site/friendly/links/$2/$3/$2$3$4.ext
Se debe reemplazar ext por la extensión de los artículos, por ejemplo: html.
Desde prontus 12.0.12.0 se implementan urls totalmente arbitrarias manejadas desde Prontus. Requiere el uso de modperl2 y Apache2. Se debe agregar la siguiente configuración al servidor
# Modulo que entrega los friendlies 5.
PerlModule prontus_route_friendly
<If "! -f %{REQUEST_FILENAME}">
# El handler actua si el archivo no existe.
SetHandler perl-script
PerlResponseHandler prontus_route_friendly
</If>
Una vez editados los archivos de configuración de directivas del servidor web (NGINX o Apache según sea el caso), debes ingresar al Administrador Prontus especificando la instancia del sitio que deseas configurar.
hacer click en Administrar → Configuración → Configuración Global y ubicar el panel "URLs Amigables"
Puedes excluir tipos de artículos a los cuales no se les generará friendly URL version 4, para ello, selecciona los artículos en cuestión en la opción FRIENDLY_V4_EXCLUDE_FID
, ejemplo:
Luego de guardar la configuración de los FIDs a excluir, debes regenerar las tablas en base de datos y los artículos (Ver Regenerar Bases de datos). También es necesario regenerar:
- Portadas Táxonomicas.
- Portadas Tags.
- Las portadas list se deben regenerar guardando artículos que correspondan a las configuración de cada portada existente.
Para regenerar Portadas debes hacer click en el Administrador del sitio en Administrar > Mantenimiento > Regeneración
Finalizado dicho procedimiento ya es posible acceder a los articulos por su nueva URL.
FRIENDLY_V4_INCLUDE_PRONTUS_ID
Permite no incluir el identificador de prontus en la URL generada, al usar la versión 4 de las URLs amigables.Al seleccionar la opción "No Incluir Prontus ID" la URL queda de la forma: /seccion/tema/subtema/titular. Ejemplo:
FRIENDLY_URLS_LARGO_TITULAR
Define el largo máximo que tendrá el titular en las friendly URL. Se recomienda no exceder los 75 caracteres. Ejemplo:
Ver también Friendly URLs para imágenes
Artículos Relacionados
Conceptos Básicos
¿Qué es Prontus?
Estructura de directorios
Glosario
Navegadores soportados
Tutoriales
Instalación de Prontus CMS
Implementar un nuevo sitio en Prontus
Cómo crear un FID
Cómo crear una plantilla de artículo
Cómo crear una plantilla de portada
Cómo crear plantillas de formulario
Cómo implementar un formulario
Cómo implementar un buscador
Cómo implementar un buscador Elasticsearch
Cómo crear una plantilla de taxonomía
Cómo crear plantillas de tags
Cómo crear una plantilla de listado
Cómo crear una plantilla de tags jerárquicos
Implementar carga de videos en Prontus
Integración de Redes Sociales
Instalación y Configuración
Requerimientos
Configuración del servidor
Base de datos
Asegurar la plataforma
Instalación con Wizard Prontus
Ajustes post-instalación
Archivos de configuración de Prontus
Friendly URLs
Friendly URLs para imágenes
SSI en Prontus
Logs de Eventos
Ejecutar procesos periódicamente con cron
Debugging
Plantillas
Plantillas de FID
Plantillas de artículo
Plantillas de portada
Plantillas de taxonomía
Plantillas de artículos relacionados
Plantillas de tags
Plantillas de listado
Plantillas de tags jerárquicos
Plantillas de mapa de taxonomía
Plantillas de mapa de tags
Marcas
Tipos de marcas
Diccionario de marcas
Marcas para texto
Marcas de lógica
Marcas de despliegue
Marca Menú y Panel
Parsing de marcas en formularios Prontus
Funcionalidades
Funcionalidades SEO en Prontus CMS
Multivistas
Galería de Imágenes
Buscador Multivista
Buscador
Buscador Elasticsearch
Calendarios
Imprimir artículos
Posting de contenidos
Plugins
Post-procesos
Prontus functions
Implementar copias de seguridad automáticas con Dropbox
Implementar múltiples ediciones
Regeneración masiva de artículos via línea de comandos