О сайтеПравилаКонтакты
  • Крипто
  • Новости
  • Статьи
  • Люди
  • Теги
» Статьи » Разработка » Делаем XML карту для сайта
  • Инструменты
  • Заработок
  • Раскрутка
22 августа 2014 . Антон Кулешов

Делаем XML карту для сайта

В этой статье мы рассмотрим один из способов как сделать XML карту для сайта. Вариантов реализации данного функционала множество, но тут я опишу способ который, по моему мнению, наиболее универсальный и удобный.

Для начала давайте рассмотрим, какие у нас есть варианты создания XML карты, вот несколько из них:

  • Использовать различные XML карт генераторы, которые можно найти в интернете;
  • Написать скрипт, который непосредственно будет работать c XML файлом и изменять его структуру при добавлении контента на сайт;
  • Третий вариант написать обработчик, который будет эмитировать XML файл.

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

RewriteEngine on
RewriteRule ^sitemap.xml?$ sitemap.php [L,QSA]

Эти два правила и будут выполнять первую часть способа, а именно эмитировать XML документ. RewriteEngine включает механизм преобразования на сервере, вторая строчка задает правило этого преобразования. Фактически когда приходит запрос на XML файл, идет выполнение PHP скрипта, который и выдает нам нужные ссылки для карты в XML формате.

Именно такой принцип, по моему мнению, очень удобен. Используя его, мы можем для каждого поискового робота сделать свою XML карту, немного изменив скрипт.

Теперь приступим к написанию самого обработчика:

// Подключаемся к БД
$db = new mysqli("localhost", "root", "", "db");
$db->set_charset("utf8");
if($db->connect_error){
 echo "<div style='color: red;'>ERROR БД</div>";
 exit;
}

// Вытягиваем нужные данные
$result = $db->query("SELECT id FROM articles");
$row = array();
for($i = 0; $i < $result->num_rows; $i++){
   $row[] = $result->fetch_assoc();
}

// Генерируем XML Карту
header("Content-type: text/xml; charset=UTF-8");

echo('<?xml version="1.0" encoding="UTF-8"?>'."\n");
echo('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n");
 echo("\t<url>\n");
    echo("\t\t<loc>http://mysite.ru</loc>\n");
 echo("\t</url>\n");
   // Ссылки
   foreach($row as $r){
        $url = 'http://mysite.ru/article/id/'.$r['id'];
     echo("\t<url>\n");
        echo("\t\t<loc>$url</loc>\n");
     echo("\t</url>\n");
   }
echo('</urlset>'."\n");

Визуально скрипт делиться на три части: подключение к БД, вытягивание данных (в примере - id статей) и генерация XML файла. В этом скрипте я использовал минимум необходимого кода, поэтому, если вам понравился способ, нужно будет изменить всего пару строк.

В результате мы получим вот такую картину, если обратиться непосредственно к XML файлу.

vyvod-xml-karty

Вот и всё, карта сайта готова.

4 442
Антон Кулешов
Комментарии не найдены

Основы добавления материалов в Joomla

Адаптивный слайдер на jQuery

Популярное
1 Пишем парсер контента на PHP2 Кликджекинг как соцфишинг, пишем скрипт для получения id пользователя вконтакте3 Лучший способ прижать футер используя flexbox4 Пишем первый модуль для 1С-Битрикс с использованием ядра D75 Делаем подгрузку контента при прокрутке страницы
Обратите внимание