Utilice el componente de redireccionamiento de Joomla para reparar URL rotas

8

¿Alguien puede ayudar con el uso del componente de redireccionamiento J3 para arreglar este tipo de enlaces rotos?

https://www.portal-gestao.com/whatever/whatever/9999-title-of-the-page

A:

https://www.portal-gestao.com/item/9999-title-of-the-page

Y esto:

http://www.portal-gestao.com/whatever/whatever/itemlist/tag/name-of-the-tag.html

A:

https://www.portal-gestao.com/item/tag/gurus.html

Y esto:

http://www.portal-gestao.com/whatever/whatever/itemlist/user/9999-name-of-author.html

Para: http://www.portal-gestao.com/item/author/3707-name-of-author.html

muchas gracias por ayudar!

Nuno Nogueira
fuente
¿Qué quieres decir con lo que sea / lo que sea / en tus URL, son el alias de algunos elementos del menú? sería útil proporcionar la uri exacta que está viendo, por ejemplo /components/com_tags/list/23-tag.html
Nagarjun
Sí, solían ser antes de actualizar la estructura del menú. Ejemplo: portal-gestao.com/gestao/carreira/… portal-gestao.com/gestao/carreira/…
Nuno Nogueira
1
Entonces, ¿ha eliminado completamente su antigua estructura de menú y ahora todos sus artículos antiguos están vinculados desde dónde? ¿Se debe acceder a todos por / item / id-article? La redirección J3 no te ayudará con esto. Como tendrás que crear redirecciones página por página.
FFrewin

Respuestas:

6

Con la siguiente regla .htaccess puede redirigir todas las páginas desde una url con el patrón de:

https://www.portal-gestao.com/whatever/whatever/9999-title-of-the-page

a una nueva url de:

https://www.portal-gestao.com/item/9999-title-of-the-page


htaccess:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.portal-gestao.com
RewriteRule ^.*/.*/(.*)$ https://www.portal-gestao.com/item/$1 [L,R=301]

Pero no estoy muy seguro de que esto sea exactamente lo que desea, ya que algo como esto afectará a todas las URL del patrón anterior (URL profundas de nivel de 2 directorios), a menos que todas sus URL nuevas sean así.

Tal vez sería mejor crear esta misma regla, pero especificando exactamente los nombres "cualesquiera" de la estructura anterior, de modo que la reescritura de la URL afectará solo esas rutas antiguas.

p.ej:

RewriteRule ^whatever1/whatever2/(.*)$ https://www.portal-gestao.com/item/$1 

Por supuesto, como señaló @Nehal, podría considerar una extensión SEF como SH404SEF, JOOMSEF, etc., que lo ayudará a manejar sus 404 páginas (enlaces rotos). La mayoría de ellos proporcionan configuraciones para configurar cómo deben construirse las URL de su sitio web.

FFrewin
fuente
Sí, la primera regla redirigirá todo, eso no es lo que necesito. El segundo parece mejor. Gracias
Nuno Nogueira
3

Lo que podría hacer es usar el Administrador de redireccionamiento de Joomla para redirigir la URL anterior a la nueva.

En el backend de Joomla, vaya a:

Componentes >> Redirigir >> Nuevo

En el campo URL de origen , ingrese la URL anterior y en el campo URL de destino , ingrese la nueva URL

Lodder
fuente
Sí, lo sé :-) La cosa es cómo crear las reglas anteriores (no página por página)
Nuno Nogueira
1
Ahh ... para esto puede que necesite usar una extensión de redireccionamiento que tenga una función de expresión regular o editar su htaccessarchivo. Desafortunadamente, no soy un htaccessexperto, así que realmente no puedo ayudar con eso. Esperemos que alguien más pueda brindarle alguna información
Lodder
3

Puede usar el componente JOOMSEF , que es para fines de SEO y más de esta extensión es gratuita.

También en ese componente tiene la opción de eliminar los nombres de categoría y menú de la url y también puede personalizar la url según usted .

Nehal
fuente