Используйте компонент перенаправления Joomla для исправления неработающих URL

8

Может кто-нибудь помочь с использованием компонента перенаправления J3, чтобы исправить этот вид неработающих ссылок:

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

Для того, чтобы:

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

И это:

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

Для того, чтобы:

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

И это:

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

Кому: http://www.portal-gestao.com/item/author/3707-name-of-author.html

Большое спасибо за помощь!

Нуно Ногейра
источник
что вы подразумеваете под какими-либо / какими-либо / в своих URL-адресах, являются ли они псевдонимами некоторых пунктов меню? было бы полезно предоставить точное URI, которое вы видите, например /components/com_tags/list/23-tag.html
Нагарджун,
Да, они были до обновления структуры меню. Пример: portal-gestao.com/gestao/carreira/… portal-gestao.com/gestao/carreira/…
Нуно Ногейра,
1
Итак, вы полностью удалили свою старую структуру меню, и теперь все ваши старые статьи связаны откуда? Все ли должны быть доступны через / item / id-article? Переадресация J3 не поможет вам в этом. Так как вам придется создавать постраничные перенаправления.
FFrewin

Ответы:

6

С помощью приведенного ниже правила .htaccess вы можете перенаправить все страницы из URL с шаблоном:

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

на новый URL:

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]

Но я не очень уверен, что это именно то, что вы хотите, так как что-то подобное повлияет на все URL-адреса вышеупомянутого шаблона (2-уровневые глубокие URL-адреса), если только все ваши новые URL-адреса не будут такими.

Возможно, было бы лучше создать это же правило, но точно указав «любые» имена старой структуры, чтобы перезапись URL-адресов влияла только на эти старые пути.

например:

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

Конечно, как отметил @Nehal, вы можете рассмотреть расширение SEF, такое как SH404SEF, JOOMSEF и т. Д., Которое поможет вам справиться с вашими 404 страницами (неработающие ссылки). Большинство из них предоставляют настройки для настройки того, как должны создаваться URL вашего сайта.

Ф.Фрюин
источник
Да, первое правило перенаправит все, это не то, что мне нужно. Второй кажется лучше. Спасибо
Нуно Ногейра
3

Что вы можете сделать, это использовать менеджер перенаправления Joomla, чтобы перенаправить старый URL-адрес на новый.

В бэкэнде Joomla перейдите по ссылке:

Компоненты >> Перенаправление >> Новое

В поле Source URL введите старый URL, а в поле Destination URL введите новый URL.

Лоддер
источник
Да, я знаю :-) Дело в том, как создать правила выше (не постранично)
Nuno Nogueira
1
Ааа ... для этого вам может понадобиться использовать расширение перенаправления с функцией регулярных выражений или отредактировать ваш htaccessфайл. К сожалению, я не htaccessэксперт, поэтому я не могу помочь с этим. Надеюсь, кто-то еще может дать вам некоторое представление
Lodder
3

Вы можете использовать компонент JOOMSEF , который предназначен для целей SEO, и большая часть этого расширения является бесплатной.

Также в этом компоненте у вас есть возможность удалить названия категорий и меню из URL, а также вы можете настроить URL в соответствии с вашими потребностями .

Nehal
источник