Переписывание одного URL-адреса - Несколько попыток без результата

Я ищу конкретную рекомендацию - я удаляю Joomsef с одного из моих сайтов, так как поддержка плохой, и мне нужно переписать определенный URL-адрес, созданный компонентом widgetkit, поскольку основной sef, похоже, не нацелен на них.

В любом случае, один из url, ранее созданный Joomsef, является /home-work /buckingham-street URL для этой страницы без Joomsef is /homes-work? layout = edit & id = 32

Я занимаюсь с помощью .htaccess в течение нескольких часов, пытаясь получить правильное правило, чтобы не повлиять - всегда 404 на url /home-work /buckingham-street.

Моя последняя попытка:

RewriteRule ^/residential-work?layout=edit&id=32$ residential-work/buckingham-street [R=301,L]

Но не радость, я также попытался добавить правило в разных областях htaccess, но мне все еще не удается заставить правило работать.

Как только у меня есть работа, мне нужно реплицировать это по нескольким URL-адресам, поэтому любая помощь, получающая эту работу, будет наиболее оценена.

Изменить: я просто попробовал следующее и это тоже не работает:

RewriteCond %{QUERY_STRING} (^|&)layout=edit($|&)
RewriteCond %{QUERY_STRING} (^|&)id=32($|&)
RewriteRule ^residential-work$ /residential-work/buckingham-street?&%{QUERY_STRING}

Итак, я хочу переписать /жилую работу? layout = edit & id = 32, так что это жилая работа /buckingham-street

Отношения Донна

0 голосов | спросил Dtorr1981 11 +03002017-10-11T13:11:02+03:00312017bEurope/MoscowWed, 11 Oct 2017 13:11:02 +0300 2017, 13:11:02

1 ответ


0

Работает ли непосредственно с /residential-work/buckingham-street или он 404?

Если он не работает сам по себе, перенаправляйте людей, которые не будут работать (вы перенаправляете людей в более длинное существующее место).

Маршрутизация SEF Joomla работает следующим образом:

Когда пользователь запрашивает URI, например residential-work/buckingham-street Joomla ищет, какой пункт меню имеет residential-work в качестве псевдонима меню (после проверки, есть ли подменю жилого дома с псевдонимом buckingham-street).

Если найден, он проверяет, какой тип компонента имеет этот элемент меню (в данном случае компонент widgetkit).

Затем он загружает файл route.php этого компонента (/components/<component name>/route.php) и передает все данные URI (/residential-work/buckingham-street) к методу parse (). Метод parse () переводит /residential-work/buckingham-street в переменные запроса, которые widgetkit должен выполнить для запроса (например, он возвращает обратно, что опция " «com_widgetkit», а «layout» - «edit», а «id» - «32» и т. д.). Затем Joomla передает эту информацию в основной файл компонента widgetkit для обработки.

У widgetkit's route.php также есть правила для создания URL SEF (это метод build ()) из частей.

Итак, если ссылки, которые вы получаете от Joomla на этой странице, это /residential-work?layout=edit&id=32, это означает, что метод widgetkit route.php build () не имеет правильных правил для преобразования /residential-work?layout=edit&id=32 в /residential-work/buckingham-street, и, если вы получаете 404s при попытке загрузить /residential-work/buckingham-street, это означает, что метод route.php parse () widgetkit doesn 't имеют правильные правила для преобразования /residential-work/buckingham-street обратно к необходимым значениям данных (layout = edit, id = 32 и т. д.).

Я бы сказал, что у вас мало вариантов:

1) Перенаправить все старые URL-адреса новыми (перенаправить /residential-work/buckingham-street в /residential-work?layout=edit&id=32, а не наоборот). Joomla по-прежнему не использует /не понимает старый URL, но, по крайней мере, они не 404.

2) Обратитесь к разработчикам widgetkit и спросите их, могут ли они обновить route.php, чтобы работать так, как вы хотите.

ответил Drew G 12 +03002017-10-12T01:41:02+03:00312017bEurope/MoscowThu, 12 Oct 2017 01:41:02 +0300 2017, 01:41:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132