У некоторых разработчиков, работающих с CMS Joomla! рано или поздно возникает проблема с созданием карты сайта. Начинаешь искать компоненты для генерации карты сайта и находишь несколько бесплатных вариантов. Большинство выбирают в качестве генератора карты сайта на Joomla! компонент Xmap, который действительно генерирует отличную карту сайта как в формате .html так и в .xml, которую с удовольствием съедает как Яндекс, так и Google. К тому же этот компонент имеет возможность, хоть и через плагины, составлять карту сайта с галерей и прочих расширений. Однако в этом компоненте есть существенный недостаток — генерирует он карту сайта, грубо говоря, черт знает куда. А именно по адресу mysite.com/index.php?option=com_xmap&sitemap=1&view=xml, что конечно совсем не придает плюсов. Например Я запрещаю индексацию дублей страниц в robots.txt таким образом: Disallow: /index.php. Соответственно, когда Я пытаюсь скормить карту сайта Яндексу или Гуглу они мне сообщают об ошибке, ведь Я запретил индексацию дальше /index.php и тут же подсовываю карту сайта, которая именно там и находится. В итоге нам приходится убирать запрет индексации дублей (к сожалению в Joomla! они присутствуют), или подыскивать другой компонент карты сайта для Joomla! Но если все таки карта сайта Xmap получается дружелюбной для поисковиков, можно попробовать решить ее недостаток...
А именно получим статичный файл карты сайта sitemap.xml из компонента Xmap:
- Создаем в корне сайта файл sitemap.php со следующим содержимым:
<?php $url="http://".$_SERVER['HTTP_HOST']."/index.php?option=com_xmap&sitemap=1&view=xml"; /*Указываем путь до карты сайта, генерируемой компонентом Xmap*/ $xml_code = file_get_contents($url); if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code)) { echo "<h1>XML sitemap successfully updated</h1>"; $xml_code = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml'); /* файл, в который будет сохранена карта сайта*/ $xml_code = str_replace ("</url>", "</url><br>", $xml_code); echo $xml_code; } else echo "<h1>Error!</h1>"; ?>
- Выставляем права на файл sitemap.php 705
- Создаем ежедневное задание в Cron'е
- Указываем полученную карту сайта в robots.txt:
Sitemap: mysite.ru/sitemap.xml
В итоге мы получили дружелюбный файл карты сайта sitemap.xml из компонента Xmap
Автор: Yazov