Новости Joomla

👩‍💻 ИИ-админ для Joomla ближе, чем вы думаете: Joomla MCP.

👩‍💻 ИИ-админ для Joomla ближе, чем вы думаете: Joomla MCP.

В февральском номере Joomla Community Magazine в статье Evolving Joomla - Joomla CMS MCP Server: Opening the Door to AI-Powered Administration рассказывается о работе команды разработчиков над внедрением в ядро Joomla MCP-сервера.

Что такое MCP-сервер?
Последние годы всех захватывает бум ИИ-технологий. Появились ИИ-агенты - программы, устанавливаемые на сервер или компьютер, которые получают от вас запрос или задачу в человеческом виде и могут выполнять действия с файлами, ходить по сайтам, создавать сайты, программировать и т.д. Люди используют ИИ-агентов в самых разных ситуациях: от написания и проверки кода (даже там, где язык программирования не знаете совсем) до планирования путешествий и бронирования гостиницы.

ИИ-агенты могут использовать различные программные инструменты по протоколу Model Context Protocol (MCP). Для этого разработчик программы должен внедрить MCP в свой продукт или сервис. Так, например, ваш ИИ-агент может ходить по сайтам через браузер и собирать нужную информацию, управляя браузером через MCP-сервер. Или использовать функционал IDE PHP Storm для написания кода, сбора и отладки ошибок, использовать поиск PHP Storm по кодовой базе, а не простой текстовый поиск по файлам. MCP предоставляет набор функций для полноценного управления программным обеспечением.

В случае с Joomla, сервер MCP может предоставить администраторам следующие возможности:
- Автоматическое создание категорий, материалов и меню на основе карты сайта или PDF-файла.
- Создавайть SEO-оптимизированные заголовки и метаописания в пакетном режиме.
- Обновлять расширения на нескольких сайтах одновременно
- Создание посадочные страницы.

Важно отметить, что сервер MCP не задумывался как функция, доступная только «супер-администраторам». Цель инициативы — создать решение, которое будет простым в настройке, маломощным и доступным для широкого круга пользователей.

В процессе разработки точка входа Joomla (аналогично Site, Administrator, Api, Cli), которая будет работать с Streamable HTTP, необходимым для MCP. Аутентификация пока что предполагается на токенах, но затем планируется создание универсального OAuth-сервера для Joomla.
Фактические возможности MCP — инструменты, ресурсы и подсказки — реализованы в виде плагинов для обеспечения расширяемости. Таким образом ожидаем, что и сторонние разработчики смогут создавать MCP-плагины для внедрения поддержки своих расширений Joomla для работы с ИИ.

@joomlafeed

Вышли релизы безопасности Joomla 6.0.4 и Joomla 5.4.4

Релиз безопасности Joomla 6.0.4 и Joomla 5.4.4

Проект Joomla! рад сообщить о выходе Joomla 6.0.4 и Joomla 5.4.4. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

0 Пользователей и 1 Гость просматривают эту тему.
  • 54 Ответов
  • 10779 Просмотров
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Код
RewriteRule ^раздел/старая_ссылка_на_товар$ https://site.ru/раздел/новая_ссылка_на_товар [L,R=301]

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www [NC,OR]
RewriteCond %{THE_REQUEST} ^GET\ .+?/\ HTTP/
RewriteRule ^(.*?)/?$ https://site.ru/$1 [L,R=301]

А если так?
Так не работает

Вот так все работает :
RewriteRule ^раздел/старая_ссылка_на_товар$ https://site.ru/раздел/новая_ссылка_на_товар [L,R=301]

RewriteCond %{HTTP_HOST} ^www [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://site.ru/$1 [L,R=301]
RewriteRule ^(.*)/$ https://site.ru/$1 [R=301,L]

Огромное Вам СПАСИБИЩЕ!
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Странно, что не работает. У себя на локалке проверил — работает. Если есть возможность написать RewriteRule один раз вместо двух, то эту возможность желательно использовать, потому что нагрузка на сервер существенно снижается. Это касается и перенаправления со старых страниц на новые. Сколько у вас страниц для перенаправления? Может следует написать регулярку? Всё же попробуйте другой вариант:

Код
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www [NC,OR]
RewriteCond %{THE_REQUEST} ^GET\ .+?/\ HTTP/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?$ https://site.ru/$1 [L,R=301]

Я забыл ещё исключить физические директории — это нужно делать обязательно, иначе швах — всё может накрыться медным тазом:

Код
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?$ https://site.ru/$1 [L,R=301]

« Последнее редактирование: 27.11.2015, 06:19:05 от Филипп Сорокин »
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Так работает
Код
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www [NC,OR]
RewriteCond %{THE_REQUEST} ^GET\ .+?/\ HTTP/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?$ https://site.ru/$1 [L,R=301]

Старых страниц 550
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Да, дело было в физических директориях. Вам нужно обязательно писать регулярку, или же ваш сервер сдохнет, прошу прощения за такой термин. Могу помочь, если опишете паттерн перенаправления.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Да, был бы Вам очень благодарен, сброшу вам в личку.
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Главную не редиректит с http на https и www на без www, внутренние страницы нормально (((
Код
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www [NC,OR]
RewriteCond %{THE_REQUEST} ^GET\ .+?/\ HTTP/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?$ https://site.ru/$1 [L,R=301]
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Тогда пока так:

Код
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www [NC]
RewriteRule ^(.*)$ https://site.ru/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/$ https://site.ru/$1 [L,R=301]

Глянул ваши перенаправления: очень сильно изменилась структура каталогов. Чтобы сократить редиректы вашего сайта, на это потребуется много времени. Обычно, подобную работу я делаю платно, если хотите, можем договориться.

Как альтернативный вариант вам придётся использовать Redirect 301 при таком количестве перенаправлений — он работает намного быстрее.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Redirect 301 не подходит, цепочка получается (((
Давайте я Вам завтра напишу и мы договоримся.
Спасибо!
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Последний фол надежды. Грязновато получилось, но может сработать.

Код
Redirect 301 /раздел/старая_ссылка_на_товар https://site.ru/раздел/новая_ссылка_на_товар

RewriteCond %{HTTP_HOST} !^www [NC]
RewriteRule .? - [S=1]

RewriteRule ^(.*)$ https://site.ru/$1 [L,R=301]

RewriteCond %{HTTPS} on
RewriteRule .? - [S=1]

RewriteRule ^(.*)$ https://site.ru/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/$ /$1 [L,R=301]

Хотя, от редиректов в количестве 550 шт. всё равно надо избавляться.
« Последнее редактирование: 27.11.2015, 04:46:45 от Филипп Сорокин »
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Так тоже не работает.
Сделал по-другому, в файле htaccess убрал редирект на https а в настройках Joomla включил ssl, теперь в файле htaccess работает такой редирект:
Redirect 301 /раздел/старая_ссылка_на_товар https://site.ru/раздел/новая_ссылка_на_товар
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Пробовал сделать редирект через компонент перенаправления, поставил относительные адреса и также происходит двойной редирект.
Было бы неплохо доработать компонент, чтобы все перенаправления делать там.
Мог бы кто помочь доработать компонент?
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Цитировать
Так тоже не работает.
Странный у вас сервак - у меня всё работает.

Цитировать
Было бы неплохо доработать компонент, чтобы все перенаправления делать там.
Через системный плагин лучше. В .htaccess установить переменную (если сервак поддерживает) и цеплять её в событии onAfterInitialise, чтобы не проверять все 550 адресов. Или просто делать перенаправления при помощи php.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Я немного запутался что работает, что не работает.
У меня работает на Joomla 1.5 так
Код
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Если отключаю
Код
#RewriteBase /
не работают директивы редиректа, указанные после этого блока
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
RewriteBase для относительных URL. Его подстановка происходит в самом конце.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Цитировать
Странный у вас сервак - у меня всё работает.
Редирект работает, только при такой конструкции, также получается двойное перенаправление.
Цитировать
Через системный плагин лучше. В .htaccess установить переменную (если сервак поддерживает) и цеплять её в событии onAfterInitialise, чтобы не проверять все 550 адресов. Или просто делать перенаправления при помощи php.
Здесь можно поподробнее? Я так понял, если использовать компонент перенаправления встроенный в Joomla, при обращении к сайту идет проверка в БД на 550 адресов, правильно?
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Редирект работает, только при такой конструкции, также получается двойное перенаправление.

Понятно. Выходит так, что mod_rewrite (RewriteRule) выполняется всегда раньше, чем mod_alias (Redirect), как я и думал. И даже скипы (последний пример) не помагают. В рамках одного единственного .htaccess мы не можем избавиться от двойного перенаправления, если используется и mod_alias, и mod_rewrite. Можно использовать только mod_rewrite, но этот вариант с вашими 550 перенаправлениями будет медленный. Если вы на выделенном сервере, можно попробовать поиграться с Location-ами, но то же самое можно сделать при помощи php и не лезть в конфиг Апача.

Я так понял, если использовать компонент перенаправления встроенный в Joomla, при обращении к сайту идет проверка в БД на 550 адресов, правильно?

Нет, там всё сделано очень гибко. Проверки 550 адресов не происходит — каждой несуществующей странице присвоена новая страница для редиректа. Хотя при помощи самописного плагина редиректы срабатывали бы ещё быстрее.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
А если сделать, как я писал выше?
Включить в админке ssl и прописать в .htaccess все 550 редиректов так:
Redirect 301 /раздел/старая_ссылка_на_товар https://site.ru/раздел/новая_ссылка_на_товар
Или 550 перенаправлений в .htaccess это не совсем правильно?
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Redirect (mod_alias) сравнивает строки, там не используются регулярные выражения, поэтому он работает очень быстро. Однако всё же 550 проверок в корневом .htaccess, которые выполняются всегда, при каждом запросе, — многовато. Их можно было бы разбить на группы, что ваша структура каталогов позволяет, но это можно только при помощи php.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
RewriteBase для относительных URL. Его подстановка происходит в самом конце.

Не всегда. https://htmlweb.ru/php/htaccess-mod_rewrite-rewritebase.php
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
А если сделать, как я писал выше?
Включить в админке ssl и прописать в .htaccess все 550 редиректов так:
Redirect 301 /раздел/старая_ссылка_на_товар https://site.ru/раздел/новая_ссылка_на_товар
Или 550 перенаправлений в .htaccess это не совсем правильно?

Кстати, можно ещё такое попробовать сотворить, если использовать только mod_alias:

Код
<If "%{HTTPS} == 'off' || %{HTTP_HOST} -strcmatch 'www*' || %{REQUEST_URI} -strmatch '*/' && !-d %{REQUEST_FILENAME}">

    # Редиректы старых ссылок
    Redirect 301 /old-url1 https://site.ru/new-url1
    Redirect 301 /old-url2 https://site.ru/new-url2
    Redirect 301 /old-url3 https://site.ru/new-url3

    # Глобальное перенаправление
    RedirectMatch 301 ^(.+?)/*$ https://site.ru$1

</If>
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Где там сказано, что не всегда? Они говорят, что всегда.
Однако на некоторых сайтах URL'ы не прямо соответствуют физическим путям, поэтому вы должны использовать директиву RewriteBase для указания правильного префикса URL.
п.с.
Здесь более развернуто и с примерами
http://stackoverflow.com/questions/21347768/what-does-rewritebase-do-and-how-to-use-it
офф. ман http://httpd.apache.org/docs/current/mod/mod_rewrite.html
RewriteBase Directive Sets the base URL for per-directory rewrites
Хабр давно уже не истина в последней инстанции
« Последнее редактирование: 29.11.2015, 11:16:53 от draff »
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Здесь более развернуто и с примерами
http://stackoverflow.com/questions/21347768/what-does-rewritebase-do-and-how-to-use-it
офф. ман http://httpd.apache.org/docs/current/mod/mod_rewrite.html
RewriteBase Directive Sets the base URL for per-directory rewrites

Да, я это уже читал. Что-нибудь новенького бы! Apache — занятная игрушка, но там ещё очень много серых зон.

Цитировать
Хабр давно уже не истина в последней инстанции

В данном примере я с ними полностью согласен. Неплохо описали механику процесса, хоть и мало, и непонятным слогом местами, но это больше для собственного пиара, чем для "просвещения". Если они, как говорится в статье, учат таким банальным вещам своих сотрудников технической поддержки, то квалификация их сотрудников оставляет желать лучшего. Хотя статья позиционируется для продвинутых.
« Последнее редактирование: 30.11.2015, 00:22:44 от Филипп Сорокин »
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Скажите, пожалуйста, можно ли сделать в файле .htaccess условие для "RewriteCond %{HTTPS} off [OR]" при обращении к сайту по http протоколу?
То есть, когда обращаемся по http протоколу, сначала обрабатываем компонент перенаправления и если находим ссылку в нем, компонент сам перенаправляет на новую страницу с прописанным с https протоколом (абсолютной ссылкой), а если не находит, то уже срабатывает перенаправление прописанное в файле .htaccess (RewriteCond %{HTTPS} off [OR] )
Объясню: в компоненте перенаправления ставлю относительную ссылку для старого URL,  для нового пишу абсолютную ссылку с https протоколом и если в файле .htaccess нет "RewriteCond %{HTTPS} off [OR]" то при переходе по старой ссылке компонент перенаправляет сразу на новую ссылку с https протоколом и нет двойной переадресации.
Спасибо!
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Исключительно в htaccess это сделать не получится. Надо либо плагин перенаправления дописывать, либо новый писать. А чем вас не устраивает готовый бюджетный вариант?
 

Кстати, можно ещё такое попробовать сотворить, если использовать только mod_alias:

Код
<If "%{HTTPS} == 'off' || %{HTTP_HOST} -strcmatch 'www*' || %{REQUEST_URI} -strmatch '*/' && !-d %{REQUEST_FILENAME}">

    # Редиректы старых ссылок
    Redirect 301 /old-url1 https://site.ru/new-url1
    Redirect 301 /old-url2 https://site.ru/new-url2
    Redirect 301 /old-url3 https://site.ru/new-url3

    # Глобальное перенаправление
    RedirectMatch 301 ^(.+?)/*$ https://site.ru$1

</If>

Проверки не выполняются для посетителей, которые перемещаются по сайту по https, по самим ссылкам на сайте, а так же при запросах статических ресурсов: изображений, скриптов, стилей и пр. То есть львиную часть нагрузки на сервер мы сняли. Дополнительно, по поводу изменения ядра, это возьмусь делать только платно.
« Последнее редактирование: 30.11.2015, 14:57:12 от Филипп Сорокин »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редирект для страницы с добавлением кода языка

Автор zeus07

Ответов: 0
Просмотров: 3392
Последний ответ 26.06.2023, 11:25:10
от zeus07
Htaccess и редирект с index.php на без index.php

Автор PavelK

Ответов: 2
Просмотров: 5462
Последний ответ 11.05.2023, 14:31:40
от PaLyCH
Как настроить редирект через маску содержащую часть пути?

Автор Slava77

Ответов: 0
Просмотров: 4052
Последний ответ 18.01.2023, 03:17:15
от Slava77
Редирект - исключение из правил (слэш)

Автор darkghost

Ответов: 0
Просмотров: 3675
Последний ответ 26.08.2022, 12:54:19
от darkghost
Редирект - JShop - слеш в конце URL

Автор darkghost

Ответов: 17
Просмотров: 4399
Последний ответ 16.08.2022, 15:18:30
от darkghost