slavik2, я создaвaл sitemap нa www.xml-sitemaps.com/ потом зaгружaл в тeло готовый фaйл и выгружaл в корeнь сaйтa нa вeн.
06 Июн 2010, 20:28если конструктор сам конвертирует, то просто периименуйте, или в txt делайте. Можно еще в архиве файл формата xml залить на конструктор, и там уже распоковать.
06 Июн 2010, 21:26немного упростим работу по составлению Sitemap.xml
напишим скрипт + это защита от захвата вашей карты вредоносными прогами, что б слить все ваши страницы и создать зеркало для дорвея
мы будим выдавать содержимое файла., ток поисковикам, для начала в htaccess пропишим
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ?/Sitemap\.xml$ [NC]
RewriteRule ?.* /sitemap.php?type=xml [L]
далие создадим файл sitemap.php
с таким содержанием
<?php
# Определим $_User_host, подробнее о функии ip() здесь...
$_User_ip = ip();
$_User_host = @gethostbyaddr ($_User_ip); // узнаем host робота
# $_BName и $_Brobotопределим, подробнее о функции здесь...
$_ARR = detect_browser ($_User_agent);
$_BName = $_ARR[0]; // если робот, то вывод будет $_BName= Robot
$_Brobot = $_ARR[3]; // имя робота
# если зашел робот
if ($_BName == 'Robot' ){
# Плохой броузер, который представляется Google Yandex Yahoo Rambler Msnbot Aport Mail.Ru
if ($_User_ip != $_User_host and
($_Brobot == 'Googlebot' or
$_Brobot == 'Yandex' or
$_Brobot == 'Rambler' or
$_Brobot == 'Yahoo' or
$_Brobot == 'Msnbot' or
$_Brobot == 'Aport' or
$_Brobot == 'Mail.Ru')
){
# проверяем не врет ли нам робот, сверяя его имя с имененм хоста
if (($_Brobot == 'Googlebot' and ! preg_match ('~googlebot\.com~', $_User_host)) or
($_Brobot == 'Yandex' and ! preg_match ('~yandex (\.ru|\.net)~', $_User_host)) or
($_Brobot == 'Rambler' and ! preg_match ('~rambler~', $_User_host)) or
($_Brobot == 'Yahoo' and ! preg_match ('~yahoo\.net~', $_User_host)) or
($_Brobot == 'Aport' and ! preg_match ('~wmd\.rol\.ru~', $_User_host)) or
($_Brobot == 'Mail.Ru' and ! preg_match ('~mail\.ru~', $_User_host)) or
($_Brobot == 'Msnbot' and ! preg_match ('~search\.(live|msn)\.com~', $_User_host))
) # если врет выводим error 401
{ print'error 401'; }
# если НЕ врет выводим sitemap.php
else {
# печатаем начало "Sitemap.xml"
$content = '<?xml version="1.0"encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
';
# считываем файл 'data/site_map.dat' -в этом файле построчно лежат
# все наши Urlы плюс через "::" их значимость от 1 до 10 (приоритет)
$general = file ('data/site_map.dat' );
$lines = count ($general);
# прогоняем все это в цикле
for ($i=0; $i<$lines; $i++){
list ($url, $level) = explode ("::",$general[$i]);
# чему равен приоретет
if ($level == 0) {$changefreq = 'hourly'; }
elseif ($level < 3) {$changefreq = 'weekly'; }
else { $changefreq = 'monthly'; }
if ($url=='') { $priority= 1; }
else { $priority = 1 - $level/10; }
# выводим url, заменяя в нем "&" на "&"
$url = str_replace ('&', '&', $url);
# добавляем к $content
$content.= " <url>
<loc>http://ваш_сайт.ру/".$url."</loc>
<priority>".$priority."</priority>
<changefreq>".$changefreq."</changefreq>
</url>\n";
} # когда цикл закончился, добавляем к $contentконечный тег
$content.= "</urlset>\n";
# печатем $content
echo $content;
} } } # если файл пытается скачать броузер отдаем ему ошибку
else { print'error 410'; }
?>
думаю пояснения излишни, вам осталось написать скрипт для записи юрлов в dat файл))
16, в первый раз слышу о запрете на скачивание сайтмапами и разрешение только для поисковиков. C одной стороны это бессмысленно, так как тратятся ресурсы на создание скрипта, во-вторых, программы специальные помогут сделать sitemap любого файла за так...
23 Июн 2010, 15:02Shtirlitz, это делается по нескольким причинам, во первых генирация sitemap будит вестись после добавления каждой новой страницы на форуме или на сайте в целом. а во вторых если слить этот файл то создать полное зеркало сайта для дорвея например)) как бы не особо хочется что бы мои ресурсы сливали
конечно защита не идеальна и лутше фильтровать поисковики по ip+ua