Карта сайта на Joomla CMS с помощью Xmap в виде sitemap.xml
Итак, нам нужно создать карту сайта на Joomla сайте с помощью плагина Xmap и преобразовать ее к виду файла sitemap.xml в корне сайта, как того требуют поисковые системы.
Переадресация карты сайта Xmap на файл sitemap.xml
Откройте файл .htaccess, который находится в корневой директории вашего сайта, с помощью текстового редактора и добавьте следующие строки:
Из документации на официальном сайте:
RewriteCond %{REQUEST_URI} ^/sitemap.xml
RewriteRule .* /index.php?option=com_xmap&id=1&view=xml
Рабочий пример:
RewriteCond %{REQUEST_URI} ^/index.php?option=com_xmap&view=xml&id=1
RewriteRule .* ^/sitemap.xml
После этого вы сможете посетить карту сайта по ссылке:
http://[ваш_сайт]/sitemap.xml
В том случае, если ваш сайт является мультиязычным, вы сможете создать сколько угодно алиасов (псевдонимов), например:
# Для русскоязычной части сайта
RewriteCond %{REQUEST_URI} ^/sitemap-ru.xml
RewriteRule .* /index.php?option=com_xmap&id=1&view=xml&lang=ru
# Для англоязычной части сайта RewriteCond %{REQUEST_URI} ^/sitemap-en.xml
RewriteRule .* /index.php?option=com_xmap&id=1&view=xml&lang=en
Создание файла sitemap.xml на Джумла
Другой способ создания xml-файла карты сайта. Для этого в корневой директории вашего сайта создайте текстовый файл с именем sitemap.xml
. В этот файл нужно добавить содержимое следующего вида:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://brain8torm.ru/index.php?option=com_xmap&view=xml&layout=xsl&tmpl=component&id=1&filter_showtitle=&filter_showexcluded="?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://brain8torm.ru/</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://brain8torm.ru/blog/joomla/</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://brain8torm.ru/blog/joomla/karta-sajta-s-pomoshhyu-xmap-v-vide-sitemapxml.html</loc>
<lastmod>2012-10-30T16:10:03Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
Файл такой структуры можно создавать путем периодического сохранения карты сайта, генерируемой компонентом Xmap в файл sitemap.xml. Это действие можно автоматизировать способом, подсмотренным на страницах блога Антона Язова. Для этого создадим файл sitemap.php
в корне сайта:
<?php
// Карта сайта из Xmap
$xmap_url="http://[ваш_сайт]/index.php?option=com_xmap&view=xml&tmpl=component&id=1";
// Получаем содержимое этой страницы
$xml_code = file_get_contents($xmap_url);
// Записываем это содержимое в файл sitemap.xml
if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code)) {
$xml_code = file_get_contents('/путь/к/папке/сайта/sitemap.xml');
$xml_code = str_replace ("</url>", "</url><br>", $xml_code);
echo "<p>sitemap.xml успешно обновлен!</p>\n";
} else echo "<p>Ошибка!</p>\n";
?>
Для обновления содержимого файла карты сайта sitemap.xml, периодически запускайте скрипт sitemap.php на выполнение. Как вариант - создать задание в Cron.
Альтернативный (более универсальный) способ
Одним из наиболее простых способов для создания карты сайта в виде sitemap.xml
является создания файла sitemap.xml
в корне вашего сайта с таким содержанием:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://[ваш_сайт]/index.php?option=com_xmap&view=xml&id=1</loc>
</sitemap>
</sitemapindex>
Таким же образом можно использовать нескольких карт сайта, генерируемых компонентом Xmap, путем объединения в один файл sitemap.xml
.
В заключении в файле robots.txt
добавьте более дружелюбный URL карты сайта:
Sitemap: http://[ваш_сайт]/sitemap.xml
С Ув. Андрей Кудряшов!
Похожие статьи
- http://joomla.vargas.co.cr
forekko 13 Февраль 2014 at 08:02 | #
Спасибо!
Рабочий вариант всё-таки работает))
А вод документированный завести не смог.
ответ
BrainStorm 04 Июнь 2014 at 15:52 | #
Когда я пробовал у меня тоже не вышло сделать как в документации описано )
ответ
Leonellka 20 Март 2014 at 20:30 | #
Большое спасибо за статью! Работает!
ответ
BrainStorm 04 Июнь 2014 at 15:54 | #
Вам спасибо за отзыв!
ответ
Дмитрий 11 Ноябрь 2014 at 23:54 | #
Спасибо Вам ОГРОМНОЕ!
Реально четко выложенна информация, без воды. И главное все работает. Я сегодня только узнал что нужна карта сайта и вуаля, она у меня есть и Google ее отлично пользует))
Побольше бы таких обзоров!
ответ
Артем 18 Февраль 2015 at 05:20 | #
Здравствуйте,первый способ не заработал ошибка 404,попробывал последний вылезла такая ошибка
This page contains the following errors:
error on line 4 at column 65: EntityRef: expecting ';'
Below is a rendering of the page up to the first error.
ответ
BrainStorm 11 Апрель 2015 at 21:25 | #
Нужно посмотреть сайт
ответ
Devol 18 Июнь 2015 at 06:46 | #
Здравствуйте!
Что-то не срабатывает вариант с Cron. Карта не генерируется в указанный файл sitemap.xml или что-то не так делаю. (
ответ
BrainStorm 20 Июнь 2015 at 15:05 | #
Ну без конкретики с Вашей стороны - что и как делаете - особо ничего не скажешь.
Но как вариант, могу предположить возможные проблемы:
1. Правильно ли вы указываете путь к php и скрипту sitemap.php при создания задания для cron в панели управления сервером?
2. Выставлены ли права на "выполнение" данного файла, а именно - sitemap.php?
3. Правильно ли вы прописываете пути в самом файле sitemap.php?
ответ
Алексей 04 Сентябрь 2019 at 06:29 | #
Лучше использовать универсальный способ создания карты сайта, на сайте частника Константина Гайдука есть инструкция.
ответ