По умолчанию Joomla добавляет в адреса страниц многоязычных сайтов языковой префикс. Так, русскоязычный контент может находиться по адресу site.com/ru/
, англоязычный — по адресу site.com/en/
и т.п. Все бы хорошо, но обычно основной язык на сайте один, остальные второстепенные. И для основного языка нет особого смысла в добавлении префикса.
Особенно это актуально, когда одноязычный сайт становится многоязычным, в результате чего из-за добавления префикса меняется URL у всех страниц.
Как же заставить Джумлу изменить свое стандартное поведение и не отображать приставки (префиксы) в адресах страниц для дефолтного языка?
В сети существует множество рецептов — одни предлагают поставить для решения задачи компонент SH404Sef, другие — хакнуть соответствующий плагин путем внесения изменений в его код. Но это все плохие и некрасивые решения — ставить отдельный компонент ради такой простой фишки нецелесообразно, а хакнутый плагин может быть перезаписан после очередного обновления сайта.
Между тем, у плагина «languagefilter» (фильтр языка) имеются свои настройки, в которые не все догадываются заглянуть. И напрасно. В этих настройках (доступных по Менеджер плагинов: Система — Фильтр языка) есть опция «Удалять префикс языка по умолчанию», активация которой полностью решает нашу задачу. Все, что нужно — полминуты вашего времени и никаких сторонних расширений и хаков.
Спасибо, все оказалось просто
И действительно, что за привычка сразу лезть в код. ))
Спасибо.
Эта опция работает неправильно в джумле, просто потому что код языка не убирается а просто делается редирект, и сайтом — продолжаются создаваться ссылки с дефолтным языком в урл.
А как сделать, чтобы при публикации новости/статьи, когда проставляется
rel="alternate"
, чтобы этот префикс тоже удалялся относительно URL, где предусмотрен язык по умолчанию?Ато не получается тогда перекрестного
rel="alternate"
на всех страницах. В них присутствует префикс/язык/
, а это уже другая ссылка (((Это не убирает префикс языка,а делает 301 редирект.
И со стороны сео не то что не решает проблему, а делает только хуже. Как можно реально убрать префикс без редиректа?
Тут вопрос шире нужно ставить — как избавиться от тех многочисленных дублей, которые Joomla плодит? Вопрос не так тривиален, как может показаться. Возьмите практически любой сайт на Joomla и посмотрите в выдачу Гугла по этому сайту. Мусора будет немеряно.
Для себя вопрос решил переходом на WordPress (после многолетнего пользования Джумлой). Заодно избавился от пачки других проблем.