Google sitemap
Материал из Umicms
В UMI.CMS реализован протокол Google sitemap
Использование файлов Sitemap инструкция для веб-мастеров http://www.google.com/support/webmasters/bin/topic.py?topic=8476
Подробнее о протоколе https://www.google.com/webmasters/tools/docs/ru/protocol.html#sitemapXMLExample
Поддержка протокола может быть добавлена в UMI.CMS начиная с версии 2.5.3 Протокол sitemap реализован на основе протокола UMap
Необходимо отредактировать единственный для версии 2.5.3 файл ./umaps/sitemap.xml (совпадает с названием протокола по чистой случайности).
Протокол umap имеет более высокий приоритет чем шаблонизатор.
Это значит, что если в структуре сайта есть страница с именем google-sitemap, то она будет проигнорирована, т.к. в первую очередь обрабатываются правила протокола UMap
сгенерируется xml в результате вызова udata://content/sitemap/
она будет обработана в соответствии с правилами файла ./xsltTpls/google-sitemap.xsl и результат будет отдан системой с заголовком xml в сответствии с инструкцией serialize type="xml"
<?xml version="1.0" encoding="utf-8"?> <sitemap> <match pattern="^google-sitemap$"> <param name="cache" value="10" /> <generate src="udata://content/sitemap/" /> <transform src="./xsltTpls/sys-tpls/google-sitemap.xsl"> <param name="domain" value="{_http_host}" /> </transform> <serialize type="xml" /> </match> </sitemap>
Это правило использует файл находящийся в папке относительно корня сайта ./xsltTpls/sys-tpls/google-sitemap.xsl
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" xsl:extension-element-prefixes="php" exclude-result-prefixes="php"> <xsl:output encoding="utf-8" method="xml" indent="yes"/> <xsl:param name="domain" /> <xsl:template match="/"> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd"> <xsl:apply-templates select="//items"/> </urlset> </xsl:template> <xsl:template match="items"> <xsl:apply-templates select="item"/> </xsl:template> <xsl:template match="item"> <url> <loc> <xsl:value-of select="concat('http://', $domain, @link)" /> </loc> </url> </xsl:template> </xsl:stylesheet>
Чтобы добавить поддержку Google sitemap в уже установленную UMI.CMS необходимо скопировать
файлы из архива Файл:Googlesitemap.zip, соблюдая структуру папок в архиве (распаковать архив в корень сайта).
проверка работоспособности http://адрес_сайта/google-sitemap
XSD схема стандарта Google sitemap лежит в папке ./xsl/xsd/sitemap.xsd
