Расширения

Обзор Joomla sh404SEF

 

  • Тип – компонент для создания SEO URL Joomla 2.5 – 3.х.
  • Скидка 20% на покупку sh404SEF (код купона 6K82R-TQ3KF-L9H68).

 

 

В предыдущей статье «Обзор sh404SEF. Настройка Joomla URL» мы уже рассмотрели некоторые часто задаваемые вопросов касательно com sh404SEF. В этой статье мы обратим внимание на другие. На примере Joomla 2.5.17, sh404SEF 4.2.1.1586 (от 02.11.2013). Из-за того, что компонент очень глубоко интегрируется с сайтом, а также очень чувствителен к серверному окружению, то решение проблем, связанных с ним, может потребовать немало знаний, времени и доступа не только к настройкам Joomla, но и к настройкам сервера. Или помощи со стороны службы технической поддержки хостинг-провайдера, разработчиков sh404SEF и разработчиков сторонних компонентов, с которыми происходят конфликты. Далеко не всегда варианты решений проблем, найденные в документации и\или на сайте разработчика, будут применимы к Вашей проблеме, даже если по описанию они, кажется, идентичны.

Настоятельно рекомендуется перед внесением любых изменений в sh404SEF сделать полную резервную копию всего сайта и базы данных, а также убедиться в том, что она работоспособна. Рекомендую до внесения изменений настроек компонента на основном сайте протестировать его на копии основного сайта на том же сервере с теми же настройками. Лучше настраивать данное расширение в дни и часы наименьшей посещаемости Вашего сайта.

Одни ошибки 404 после включения sh404SE

Проблема. С файлом «.htaccess» всё нормально (наличие, содержимое, права доступа), но всё равно, куда бы на сайте я не перешёл, получаю одни только ошибки 404.

Возможное решение. Выполнение правил в файле «.htaccess» очень сильно зависит от сервера и его настроек. Одного единственно правильного решения для всех серверов и их настроек нет. Для начала ещё раз убедитесь в том, что Ваш «.htaccess» - это именно тот «htaccess.txt» файл, который поставлялся с Вашей версией Joomla. Обязательно переименуйте «htaccess.txt» в «.htaccess». Возможно, Вам понадобится внести некоторые изменения в Ваш  файл «.htaccess» для работы с com sh404SEF или другим SEF компонентом. Лучше сделать это в файле «htaccess.txt», а затем переименовать его в «.htaccess». Какие именно могут понадобиться изменения, Вы можете узнать в документации к Вашему серверу и\или у Вашего хостинг-провайдера.

Учтите, что если Вы используете IIS (Microsoft Internet Information Server), вместо Apache, то тогда применение файла «.htaccess» требует установки дополнительного программного обеспечения, так как, по умолчанию, «.htaccess» не поддерживается в IIS. В таком случае рекомендуется использование опций «без .htaccess (/index.php/)» или «без .htaccess (/index.php?/)» в настройках com sh404SEF.

После настройки файла «.htaccess» получаю ошибки 500

Проблема. Сайт постоянно выдаёт ошибки 500, хотя файл «.htaccess» присутствует.

Возможное решение. Переименуйте файл «.htaccess» в, например, «htaccess.txt». А затем проанализируйте его содержимое. Попробуйте вернуть «родное» содержимое. Подобная ситуация может возникать тогда, когда содержимое «родного» Joomla файл «.htaccess» было изменено. Возможно, это сделали Вы в ходе настройки.

Что делать, если необходимо очистить кэш URL Joomla

Проблема. Были изменены настройки com sh404SEF, влияющие на генерацию SEO URL, но на сайте ничего не изменилось.

Возможное решение. Все SEO URL, которые генерирует Joomla sh404SEF создаются один раз, а затем хранятся в базе данных. Если Вы внесли какие-то изменения в настройки компонента, которые должны повлиять на формование SEO URL, например, отключили отображение ID статей в адресах, то Вам нужно очистить базу данных адресов.

Обратите внимание, что очищать таблицу URL Joomla базы данных сайта нужно только в том случае, если Вы изменили настройки компонента, которые непосредственно влияют на формирование адресатов. Если, например, Вы изменили настройки страницы 404, то очищать таблицу не надо. Подробнее о создании собственной страницы 404 Вы сможете прочесть в статье «Обзор sh404SEF. Настройка Joomla URL».

Перейдите в раздел Ссылки URL (рисунок ниже) и нажмите кнопку Экспорт. Экспортируйте все данные себе на компьютер и убедитесь, что файл открывается. Так Вы сможете восстановить данные (при помощи кнопки Импорт), если это понадобится.

sh404SEF

Затем нажмите кнопку Прочистить (рисунок выше). Тем самым Вы удалите все URL Joomla. Это приведёт к следующей проблеме.

Проблема. Были удалены все ссылки из раздела Ссылки URL и теперь, при переходе на любую страницу сайта возникает ошибка 404.

Возможное решение. Когда к Вашему сайту обращаются по SEO URL  вида «http://primer.aleksius.com/sozdanie-sajtov/incomedia-website-x5/website-x5-professional-10», то com sh404SEF обращается к базе данных, чтобы его найти и отобразить нужную страницу, которой соответствует не ЧПУ URL Joomla. Но база данных пуста и компонент возвращает ошибку 404.

Для того, чтобы заново сформировать базу данных адресов, просто перейдите на главную страницу своего сайта (она доступна независимо от того, есть в базе данных адреса или нет). Например, введите его домен в адресную строку браузера. Как только это произойдёт, com sh404SEF сформирует новые SEO URL для всех ссылок, которые есть на главной странице. Если на главной странице сайта есть карта сайта, то перейдите в неё и sh404SEF создаст нужные записи в базе данных.

Рекомендуется воспользоваться сервисом генерации карт сайта, например, Cy-Pr.com. Просто укажите домен Вашего сайта и всё. Это ускорит генерацию адресов, так как робот пройдёт по ссылкам с главной страницы сайта далее «вглубь».

Как убрать «index.php» из URL адресов сайта

Проблема. Необходимо удалить «index.php» из адресов сайта.

Возможное решение. Необходимо наличие файла «.htaccess» в корне сайта, а также необходима поддержка режима перезаписи «mod_rewrite» у Вас на хостинге.

Убедившись в этом, перейдите в настройки sh404SEF (вкладка Компонент sh404SEF, подкладка Расширенные) и в спадающем списке Режим переписи выберите С .htaccess (mod_rewrite) (рисунок ниже).

Joomla sh404SE

На всех страницах, кроме главной, ошибка 404

Проблема. После включения sh404SE на всех страницах, кроме главной, отображается ошибка 404.

Возможное решение. Если Вы попали в такую ситуацию, то скорее всего, в Ваших SEO URL нет «/index.php/» (например, http://primer.aleksius.com/index.php/sozdanie-sajtov/incomedia-website-x5/website-x5-professional-10). Вероятно, Вы изменили настройки по умолчанию в com sh404SEF с «Без .htaccess (/index.php/)» (рисунок выше) на что-то другое. Для решения данной проблемы или переключитесь обратно на режим «Без .htaccess (/index.php/)» или настройте файл «.htaccess» в корне сайта. Немного подробнее об этом в статье «Обзор sh404SEF. Компонент Joomla SEO».

Для чего в адреса вставляется «index.php»

Файл «index.php» позволяет заменить файл «.htaccess», который нужен для корректной работы sh404SEF. У «index.php» есть несколько преимуществ.

  1. Он работает на большинстве серверов Apache и не требует дополнительной настройки.
  2. Он может работать на сервере IIS, хотя не поддерживается.

Использование «index.php» упрощает настройку, особенно, если серверная среда (хостинг) не подходит для перезаписи URL.

Зачем нужен файл «.htaccess»

Ваш веб-сервер отвечает на запросы, поступающие от браузеров пользователей. Веб-браузер запрашивает страницу, которая должна совпадать с именем файла, который находится у Вас на сервере. Например, все запросы к генерируемому Joomla содержимым должны быть выполнены через один файл «index.php», который расположен в корневом каталоге Вашего сайта. Этот файл – единственная точка входа на Ваш сайт.

Запрос вида: «http://primer.aleksius.com/index.php?option=com_content&view=article&id=264:website-x5-professional-10&catid=32&Itemid=933» говорит Вашему серверу о необходимости вызова файла «index.php», а также отправляет дополнительную информацию «option=com_content&view=article&id=264:website-x5-professional-10&catid=32&Itemid=933», чтобы Joomla могла найти нужную страницу. В этой ситуации никаких проблем нет, так как файл «index.php» действительно существует на сайте.

Но теперь, когда у Вас ЧПУ или SEO URL, то запрос от веб-браузера пользователя может выглядеть примерно так: «http://primer.aleksius.com/sozdanie-sajtov/incomedia-website-x5/website-x5-professional-10.html». Это должно быть причиной ошибки 404, так как на самом деле в корневой папке сайта нет директории «sozdanie-sajtov», в которой расположена поддиректория «incomedia-website-x5», в которой лежит файл «website-x5-professional-10.html». Специально для этого (но далеко не только для этого) предназначен файл «.htaccess». Он не даёт появиться ошибке 404, а вместо этого отправляет запрос в файл «index.php» Joomla, а далее процесс протекает так, как раньше. На самом деле, перед тем, как запрос попадёт в файл «index.php» Joomla, com sh404SEF перепишет его на понятном для Joomla языке.

Системный SEF плагин Joomla

В менеджере плагинов Joomla Вы можете найти два SEF (ЧПУ) плагина.

  1. «Система – SEF». Добавляет SEF-поддержку для ссылок в документе. Он работает непосредственно с HTML-кодом и не требует специальных тегов.
  2. «sh404sef - System plugin». Главный системный плагин компонента sh404SEF для работы с URL Joomla.

Они оба должны быть включены. Если отключить плагин ядра Joomla «Система – SEF», то у Вас появится много ошибок.

После установки sh404SEF ничего не изменилось

Проблема. Компонент sh404SEF установлен, но ничего на сайте не изменилось.

Возможное решение. После установки данного расширения оно, по умолчанию, отключено. Сперва настройте его, а затем проверьте, что Вы включили компонент (рисунок ниже). Для того, чтобы настройки компонента повлияли на формирование URL необходимо включить опцию Включить оптимизацию ссылок URL. Активация опций Включить удаленную конфигурацию и Задействовать функции безопасности для этого не обязательно.

Для того, чтобы задействовать функции обеспечения безопасности данного компонента, активируйте опцию Задействовать функции безопасности. Подробнее о дополнительных способах защиты сайта на Joomla Вы может прочесть в статье «Защита Joomla (часть 1). Безопасный пароль».

com sh404SEF

Очистите кэш браузера и Joomla, перейдите на главную страницу своего сайта, чтобы компонент создал SEO URL. Подробнее об этом Вы сможете прочесть в данной статье выше раздел «Что делать, если необходимо очистить кэш URL Joomla».

URL адреса для сторонних расширений не изменились

Проблема. Компонент sh404SEF установлен, настроен, включён и часть URL адресов, например, статьи Joomla приняли желаемый вид. А URL адреса, которые генерируются некоторыми сторонними расширениями, не выходящие в состав Joomla по умолчанию, не изменились или приняли не тот вид, что ожидалось. Например, адрес страницы статьи Joomla был «http://primer.aleksius.com/32-sozdanie-sajtov/incomedia-website-x5/158-website-x5-professional-10», а стал «http://primer.aleksius.com/sozdanie-sajtov/incomedia-website-x5/website-x5-professional-10», а страница с личными сообщениями uddeIM была «http://primer.aleksius.com/component/com_uddeim/Itemid,229/id,1/view,select/» и осталась такой же.

Возможное решение. «http://primer.aleksius.com/component/com_uddeim/Itemid,229/id,1/view,select/» – это SEO URL, который генерирует «стандартный» компонент ЧПУ Joomla. Для того, чтобы com sh404SEF смог преобразовать его в красивый SEO URL скорее всего потребуется дополнительный плагин для sh404SEF и этого стороннего расширения. В нашем примере uddeIM. По умолчанию, в состав sh404SEF входит ряд плагинов для компонентов ядра Joomla (компонентов, входящих в состав CMS по умолчанию) и наиболее популярных сторонних компонентов.

  • com_banners – компонент баннеров Joomla (компонентов, входящих в состав CMS по умолчанию).
  • com_community – компонент Jomsocial.
  • com_comprofiler – компонент Community Builder.
  • com_contact – компонент контактов Joomla (компонентов, входящих в состав CMS по умолчанию).
  • com_content – компонент материалов Joomla (компонентов, входящих в состав CMS по умолчанию).
  • com_hotproperty – компонент Hot Property.
  • com_kunena – компонент Kunena.
  • com_letterman – компонент Letterman.
  • com_magazine.
  • com_mtree – компонент Mosets tree.
  • com_myblog – компонент MyBlog.
  • com_newsfeeds – компонент ленты новостей Joomla (компонентов, входящих в состав CMS по умолчанию).
  • com_search – компонент поиска Joomla (компонентов, входящих в состав CMS по умолчанию). Подробнее об этом компоненте Вы сможете прочесть в статье «Обзор Joomla поиск».
  • com_users – компонент пользователей Joomla (компонентов, входящих в состав CMS по умолчанию).
  • com_virtuemart – компонент Virtuemart.
  • com_weblinks – компонент ссылок Joomla (компонентов, входящих в состав CMS по умолчанию).
  • com_wrapper – модуль Joomla (компонентов, входящих в состав CMS по умолчанию).  Этот модуль отображает в IFrame-окне содержимое по заданной ссылке (сайт или файл).

Дополнительные плагины могут идти в составе со сторонним расширением, чтобы обеспечить его совместимость с sh404SEF. Также можно их поискать на сайте расширений Joomla. Также, в некоторых случаях могут подойти плагины от JoomSEF.

Например, после установки плагина компонента личных сообщений uddeIM для sh404SEF, URL адрес страницы отправки сообщения стал выглядеть так: «http://primer.aleksius.com/my-messages/compose», до установки – «http://primer.aleksius.com/component/com_uddeim/Itemid,229/task,new/».

О том, как установить плагин для стороннего расширения и sh404SEF Вы сможете узнать из документации к стороннему расширению. Но в случае с uddeIM 3.2, Joomla 2.5.17 и sh404SEF 4.2.1.1586 всё было просто. Плагин состоял из двух файлов с одинаковым именем «com_uddeim.php». Один из них лежал в папке «sef_ext», другой в «language». Достаточно скопировать «com_uddeim.php» из папки «sef_ext» в «/components/com_sh404sef/sef_ext/» или «/components/com_uddeim/sef_ext/» на вашем сайте. А «com_uddeim.php» - из папки «language» в «/administrator/components/com_sh404sef/languages/plugins/». После этого, скорее всего, понадобится очистить кэш. Подробнее об этом можно прочесть в данной статье выше в разделе «Что делать, если необходимо очистить кэш URL Joomla».

Не отображаются подменю

Данная проблема связана с использованием «Itemid» в Joomla. Возможный вариант её решения Вы сможете найти в статье «Обзор sh404SEF. Настройка Joomla URL».

Что такое «$live_site»

Начиная с версии 1.5, Joomla пытается самостоятельно автоматически определить корневой URL (доменное имя), например, http://aleksius.com. Эта информация необходима для множества операций, особенно в случае с формированием URL Joomla.

К сожалению, иногда данный процесс протекает не очень гладко. В основном, из-за неверной настройки сервера. При этом, sh404SEF будет страдать в первую очередь, так как напрямую решает вопросы формирования URL Joomla. Иногда могут появляться неправильные адреса, ведущие на главную страницу, иногда – ошибки 404 и так далее.

Для решения данной проблемы в первых версиях Joomla 1.5 был предусмотрен конфигурационный параметр «$live_site». Благодаря ему, автоматическое определение корневого URL (доменного имени) должно проходить успешно. Рекомендуется во всех конфигурационных файлах Joomla – «configuration.php» указывать данный параметр, «$live_site». Например, «$live_site = 'http://aleksius.com';», где вместо «aleksius.com» Вам необходимо задать доменное имя Вашего сайта.

Иногда, Joomla не добавляет данный параметр в конфигурационный файл во время установки. Вы можете сделать это самостоятельно для того, чтобы быть уверенным в том, что sh404SEF будет работать корректно.

Отмечу, что лично у меня на сайте параметр «$live_site» не задан.

В следующей статье «Обзор sh404SEF. Joomla SEF компонент» мы продолжим рассмотрение часто задаваемых вопросов и детальнее коснёмся тем, связанных с аналитическими функциями компонента и его связи с Google Analytics.

О новой версии данного компонента, совместимой с 3-й и 4-й версиями Джумла Вы можете узнать в статье «Обзор 4SEF. Управление ЧПУ адресами в Joomla 4 и 3».

Похожие материалы
Автор статьи – Хорошевский Алексей

Хорошевский Алексей Примерно с 2008 года и по сегодняшний день создаю сайты «под ключ» на Joomla и WebSite X5. Также занимаюсь их доработкой, SEO-продвижением, контекстной рекламой, защитой от взлома и оптимизацией скорости загрузки сайта.

Кандидат технических наук по специальности «Информационные технологии».

На этом сайте есть контакты и информация обо мне. На нём Вы найдёте примеры моих работ, а также перечень и цены предоставляемых услуг.

 

Полезные ссылки: