У меня есть файл sitemap.php для создания sitemap.xml (я использовал php, потому что я извлекаю данные из базы данных, но я пропустил эту часть здесь)
Вот код:
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
echo
"<url>
<loc>http://www.mywebsite.it</loc>
<lastmod>" . $data_oggi . "</lastmod>
</url>
<url>
<loc>http://www.mywebsite.it/eng/</loc>
<lastmod>" . $data_oggi . "</lastmod>
</url>
</urlset>";
И это работает, потому что sitemap.xml, который я получаю:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.mywebsite.it
</loc>
<lastmod>2018-08-15</lastmod>
</url>
<url>
<loc>http://www.mywebsite.it/eng/
</loc>
<lastmod>2018-08-15</lastmod>
</url>
</urlset>
Но теперь, если я добавлю атрибут hreflang следующим образом:
...
echo '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"xmlns:xhtml="http://www.w3.org/1999/xhtml">';
...
echo
"<url>
<loc>http://www.mywebsite.it</loc>
<xhtml:link
rel='alternate'
hreflang='it'
href='http://www.mywebsite.it'/>
<xhtml:link
rel='alternate'
hreflang='en'
href='http://www.mywebsite.it/eng/'/>
...
</url>
<url>
<loc>http://www.mywebsite.it/eng/</loc>
<xhtml:link
rel='alternate'
hreflang='it'
href='http://www.mywebsite.it'/>
<xhtml:link
rel='alternate'
hreflang='en'
href='http://www.mywebsite.it/eng/'/>
...
Файл sitemap.xml, который я получаю, просто:
http://www.margheritabonaldi.it 2018-08-15 1.00 http://www.margheritabonaldi.it/eng/ 2018-08-15 0.80
Я теряю где-то все теги. Что происходит?
Спасибо всем, кто может помочь!
Задача ещё не решена.
Других решений пока нет …