Main menu

У некоторых разработчиков, работающих с CMS Joomla! рано или поздно возникает проблема с созданием карты сайта. Начинаешь искать компоненты для генерации карты сайта и находишь несколько бесплатных вариантов. Большинство выбирают в качестве генератора карты сайта на Joomla! компонент Xmap, который действительно генерирует отличную карту сайта как в формате .html так и в .xml, которую с удовольствием съедает как Яндекс, так и Google. К тому же этот компонент имеет возможность, хоть и через плагины, составлять карту сайта с галерей и прочих расширений. Однако в этом компоненте есть существенный недостаток - генерирует он карту сайта, грубо говоря, черт знает куда. А именно по адресу http://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";
$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: http://mysite.ru/sitemap.xml В итоге мы получили дружелюбный файл карты сайта sitemap.xml из компонента Xmap.