0 Пользователей и 1 Гость просматривают эту тему.
  • 38 Ответов
  • 13722 Просмотров
*

2ball

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
В общем, где-то прочитал, что лучше использовать файл карты сайта, а не динамическую страницу. Вроде как влияет на индексацию. Верить, не верить дело каждого. Однако мне такой файлик ничего не стоит. Потому решил его разместить и скормить Яндекс с Гуглом.
Для карты сайта я использую Xmap, и раз он генерит карту, у него мы и возьмем весь текст для файла. Все вышло неплохо. Написал скриптик. Обработку. Поставил на крон. Теперь каждый день сайт сам генерирует карту сайта в физический файл, а не по URL.
Если кому-то понадобится. Выкладываю код скрипта.

Пишете код в любой файлик, кидаете куда удобно на хостинге, и добавляете в крон.
P.S. - Репортинг добавлен, чтобы по почте получать информацию об успешной генерации карты.

Дополнение. Файлик для поисковиков будет называться sitemap.xml и лежать там же, где и скрипт.

Код
<?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>";
?>

« Последнее редактирование: 02.02.2012, 17:09:31 от 2ball »
*

JoomlaTeacher

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Я бы поправил код замечаниями:

<?php
$url="http://".$_SERVER['HTTP_HOST']."/index.php?option=com_xmap&sitemap=1&view=xml"; /* Здесь ввести путь из "Компонеты - Xmap - Настройки - URL карты: - XML карта:*/

$xml_code = file_get_contents($url);

if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code))
   {
      echo "<h1>XML sitemap succefully 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>";
?>

У меня Joostina и там путь немного не так выглядит, и слеш нужен, а то лепит XML на уровень выше корня сайта и название прикольное - "public_htmlsitemap.xml"

За скрипт - спасибо.
*

2ball

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
Так в принципе там путь разве что Joostina не подходит. Это стандартный Xmap путь к XML карте. Но Вы правы, чем больше комментариев, тем лучше.
Надо будет попозже прикрутить кнопку к админке, на принудительную генерацию файлика. Плагин из скриптика.
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
Добавлю еще то, что если не использовать Cron, то права на скрипт, который мы предварительно сохранили в .php, нужно выставить 705
« Последнее редактирование: 18.07.2012, 10:48:28 от Langoliers »
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
В карте сайта, сформированной компонентом Xmap ссылки формируются без www, а после обработки вашим скриптом в файле sitemap.xml ссылки отображаются с www. Как поправить этот глюк?

Решил проблему добавлением в .htaccess следующего кода
Цитировать
RewriteBase /

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
« Последнее редактирование: 31.05.2012, 13:45:54 от alexj69 »
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Подскажите, что нужно добавить в этот код, чтобы на карте сайта отображалось время ее создания?
*

dron

  • Завсегдатай
  • 1580
  • 16 / 10
А можно чуть подробнее, пожалуйста!

1. В каком формате сохранять скрипт?
2. Что именно и как настраивать в cron?

Заранее спасибо!
*

Marakaya

  • Захожу иногда
  • 59
  • 1 / 0
Вопрос такого характера. На сайте стоит галочка Включить SEO - да. Все ссылки имеют читабильный вид (по синонимам), но вот когда Xmap генерит карту сайта, все ссылки имеют вид без синонимов, а именно - therapy/2011-10-15-08-59-20, но ссылки эти все равно открываются. Как сделать чтобы Xmap генерил карту сайта с нормальными ссылками?
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
А SEO-ссылки каким компонентом формируются? Проверьте, есть ли в Xmap соответствующий плагин.
*

ippa

  • Новичок
  • 5
  • 0 / 0
Добрый день.
Возможно-ли поставить таймаут на выполнение скрипта? Если 1000 товаров - то всё нормально выполняется и сохраняется - и через браузер, и через Cron. Если 5000 товара - то через браузер с натягом (не с помощью скрипта, а ввожу сайт/index.php?option=com_xmap&view=xml&tmpl=component&id=1), если в браузере ввожу сайт/map/automap.php - то через 2 минуты выдает ошибку -

Warning: file_get_contents(http://сайт.ru/index.php?option=com_xmap&view=xml&tmpl=component&id=1): failed to open stream: HTTP request failed! in /var/www/владелец/data/www/сайт/map/automap.php on line 5

А у меня всего 20000....
Манипуляции с увеличением таймаутов, памяти и т.д. ни к чему не привели - даже спец. для этого на выделенный сервер переехал.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Здравствуйте! Создал файл "sitemap.php", в файл вставил код, который указан выше, закинул на хостинг, выставил файлу права 705, в cron указал путь к файлу "/public_html/sitemap.php".
При выполнении отправляет на почту сообщение:
.../public_html/sitemap.php: line 1: ?php: No such file or directory
.../public_html/sitemap.php: line 2: =http://.[HTTP_HOST]./index.php?option=com_xmap&sitemap=1&view=xml: No such file or directory
.../public_html/sitemap.php: line 2:
: command not found
...public_html/sitemap.php: line 3: syntax error near unexpected token `('
...public_html/sitemap.php: line 3: `$xml_code = file_get_contents($url); '

Вписываю в строку в браузере путь к файлу "http://мой сайт.ru/sitemap.php". Все, файл появился по адресу "http://мой сайт.ru/sitemap.xml".
Подскажите, пожалуйста, что я делаю не так? Как сделать так, чтобы файл создавался (обновлялся) автоматически? Спасибо!
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

zloy lamer

  • Захожу иногда
  • 208
  • 13 / 0
сорри за нубский вопрос...
а как добавить в крон? какую команду надо прописать?
или просто /public_html/sitemap.php ?
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
а как добавить в крон? какую команду надо прописать?
Читаем, что такое Cron и ищем такую функцию в панели управления хостингом. Если ее не будет, то в ручную раз в день (или когда хотите) заходите по адресу mysite.com/sitemap.php (права на файл должны стоять 705(!)
*

zloy lamer

  • Захожу иногда
  • 208
  • 13 / 0
Читаем, что такое Cron и ищем такую функцию в панели управления хостингом. Если ее не будет, то в ручную раз в день (или когда хотите) заходите по адресу mysite.com/sitemap.php (права на файл должны стоять 705(!)
да читал уже...
надо вставить в командную строку: ./public_html/sitemap.php?
только у меня тоже выдает ошибки при получении письма как в 10 топике...
объясните на пальцах для тех кто в танке и каску не снимает никогда=)
заранее огромное спасибо!
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
В общем смотрите... Есть у меня сайт danceplane.ru, на котором я использую Xmap и выше приведенный скрипт... Я создал задание в Cron'e, но могу так же выполнить ту же самую операцию просто зайдя по адресу danceplane.ru/sitemap.php
Можете попробовать сами...
А как создать задание в кроне зависит от полного(!) пути вашей папки... видимо путь вы указали не верный...
*

zloy lamer

  • Захожу иногда
  • 208
  • 13 / 0
файл кинул в корневую папку, т.е. в public_html.
xml файл нормально обновляется и создается в корневой папке при прямом запросе скрипта, т.е. при наборе http://my_site.ru/sitemap.php все получается норм.
в crone прописываю ./public_html/sitemap.php ставлю время на выполнение, после выполнения приходит письмо на почту с ошибкой как в 10 топике...
что не так, не пойму... хотелось бы автоматизировать данный процесс а не пользоваться прямым вызовом скрипта...
вот я и не пойму в чем проблема, вроде все нормально сделал...
может просто я нуб?
если не сложно распишите по полочкам, с кроном не сталкивался раньше...
но как уже понял вещь кульная...
заранее большое спасибо! + не заржавею, не жалко...
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
Что за хостинг?
Если папка у вас только public_html (один сайт) то вы должны написать только ~/public_html/sitemap.php
Если у вас несколько сайтов лежит в соответствующих ссылках то пишите так:
~/название_папки_где_лежит_сайт/public_html/sitemap.php

Знак ~ обязателен, так как он заменяет полный путь до папки...
*

zloy lamer

  • Захожу иногда
  • 208
  • 13 / 0
/home/my_site/public_html/sitemap.php: line 1: ?php: No such file or directory
/home/my_site/public_html/sitemap.php: line 2: =http://.[HTTP_HOST]./index.php?option=com_xmap&sitemap=1&view=xml: No such file or directory
/home/my_site/public_html/sitemap.php: line 3: syntax error near unexpected token `('
/home/my_site/public_html/sitemap.php: line 3: `$xml_code = file_get_contents($url);'
вот такой ответ в письме... знак ~ поставил, но без результата, до этого ставил . тот же ответ был...
*

zloy lamer

  • Захожу иногда
  • 208
  • 13 / 0
сайт один
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
так.. давайте вы через FileZilla войдете в корень своего сайта (там где лежит файл sitemap.php) и скинете мне путь который будет выводиться в адресной строке клиента (без названия сайта конечно)
*

zloy lamer

  • Захожу иногда
  • 208
  • 13 / 0
разобрался... списался с хостером, благо реагируют быстро...
посоветовали прописать такую команду: wget -O /dev/null http://домен/путь_до_скрипта
помогло, все заработало!
спасибо за помощь!
*

zloy lamer

  • Захожу иногда
  • 208
  • 13 / 0
в файлзиле так и прописывается: /public_html/
это корень сайта где лежит файл скрипта sitemap.php
*

zloy lamer

  • Захожу иногда
  • 208
  • 13 / 0
т.е. получается это особенности хостинга....
*

accept2008

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Генерация XML файла на основе Xmap
« Ответ #23 : 08.05.2014, 10:59:57 »
J 2.5

Файлик (705) выдает Error! http://ipoet.com.ua/sitemap.php

Содержимое:

Код
<?php 
$url="http://".$_SERVER['HTTP_HOST']."/index.php?option=com_xmap&view=xml&tmpl=component&id=1";

$xml_code = file_get_contents($url);

if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code))
   {
      echo "<h1>XML sitemap succefully 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.xml создается, но с весом 0Байт.



Заранее спасибо!
« Последнее редактирование: 08.05.2014, 11:05:34 от accept2008 »
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
RE: Генерация XML файла на основе Xmap
« Ответ #24 : 19.11.2014, 09:20:08 »
То-же самое! Нашёл кто нибудь решение?
Что гадаете, читайте лог файлы там ошибки написаны
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
RE: Генерация XML файла на основе Xmap
« Ответ #25 : 20.11.2014, 18:11:33 »
а когда в браузере открываете файл, какой результат отображается?
*

diy05

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
RE: Генерация XML файла на основе Xmap
« Ответ #26 : 03.12.2014, 18:10:30 »
а когда в браузере открываете файл, какой результат отображается?
отображается "Error!"
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
RE: Генерация XML файла на основе Xmap
« Ответ #27 : 03.12.2014, 18:16:54 »
Поэтому файл с картой и пустой. Что-то не так настроили в рнр-файле
*

vladimir213

  • Новичок
  • 4
  • 0 / 0
RE: Генерация XML файла на основе Xmap
« Ответ #28 : 04.02.2015, 21:19:15 »
Мне помогло создать sitemap.xml увеличением php_max_input_vars: до 10000 в настройках php.ini
*

x-masters

  • Захожу иногда
  • 80
  • 0 / 0
Re: Генерация XML файла на основе Xmap
« Ответ #29 : 02.06.2015, 11:57:04 »
А мне пришлось переделать скрипт. При небольшом количестве страниц все работало, но как только страниц стало 9000 скрипт начал выдавать ошибку. При этом через CRON sitemap.xml создавался пустой как у многих мученников сверху.
Вот как выглядит мой скрипт sitemap.php:
Спойлер
[свернуть]
« Последнее редактирование: 02.06.2015, 12:02:22 от x-masters »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

После обновления не работает Xmap

Автор jess

Ответов: 15
Просмотров: 3580
Последний ответ 17.01.2019, 14:43:56
от palexa
Xmap не загружает.xml карту с включенным кэшированием!

Автор Dim

Ответов: 12
Просмотров: 1777
Последний ответ 17.12.2018, 19:53:13
от lexxbry
Xmap и OSmap

Автор kreativ

Ответов: 3
Просмотров: 2330
Последний ответ 18.09.2018, 10:43:29
от almika
[Решено] При включеннии плагина Xmap - Content Plugin - ошибка 1054

Автор maiak

Ответов: 10
Просмотров: 4743
Последний ответ 07.09.2018, 10:26:29
от k-redactor
[РЕШЕНО]Zh YandexMap - проблема с процентными характеристиками

Автор lexxbry

Ответов: 2
Просмотров: 1923
Последний ответ 16.08.2018, 13:05:26
от lexxbry