#php #xml #.htaccess #seo #sitemap
#php #xml #.htaccess #seo #Карта сайта
Вопрос:
Разрешено ли указывать ?id=1
часть URL в sitemap_index.xml , <loc>
тег?
Я хочу создать динамическую карту сайта.
Я включил выполнение php в файлах .xml, добавив эту строку AddType application/x-httpd-php .xml
в .htaccess, и теперь я хочу создать один статический файл индекса sitemap и один динамический файл sitemap, вот код, который я написал:
sitemap_index.xml:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://example.com/sitemap.xml?id=1</loc>
<lastmod>2014-07-06</lastmod>
</sitemap>
<sitemap>
<loc>http://example.com/sitemap.xml?id=2</loc>
<lastmod>2014-07-06</lastmod>
</sitemap>
<sitemap>
<loc>http://example.com/sitemap.xml?id=3</loc>
<lastmod>2014-07-06</lastmod>
</sitemap>
<!-- ..And so on -->
</sitemapindex>
sitemap.xml:
<?php
(empty($_GET['id'])) ? $_GET['id'] = 0 : settype($_GET['id'], 'int');
$result = '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
$from = $_GET['id']*45000;
$to = $_GET['id']*45000 45000;
for ($i = $from; $i < $to; $i ) {
$result .= '
<url>
<loc>http://example.com/page.php?id=' . $i . '</loc>
<lastmod>2014-07-06</lastmod>
<changefreq>weekly</changefreq>
</url>';
}
$result .= "n</urlset>";
echo $result;
?>
Комментарии:
1. Для динамического создания XML используйте библиотеку XML — это лучше, чем просто объединение строк (примеры уже существуют здесь, на сайте IIRC). кроме того, какая часть справочной документации sitemap XML вам неясна в отношении параметра запроса, который вы задаете в своем вопросе?
2. @hakre К сожалению, в XML-ссылке sitemap ничего нет о
?SOMETHING=SOMETHING
части в файле индекса sitemap :c3. Ну, эти строки запроса являются просто стандартной частью HTTP-URL, и они там используются. В этом нет ничего плохого. Хотя в ссылке не указано, какому стандарту следует следовать для URL-адресов, однако на самом деле существует только один, так что я не буду сильно беспокоиться.
Ответ №1:
ДА. В карте сайта может быть любой допустимый URL. URL-адрес со строкой запроса, который показан в вашем примере, является обычным и обычно встречается во всех файлах sitemap, кроме самого базового сайта.
ДА. У вас могут быть URL-адреса sitemap со строками запросов. [Кажется, подойдет любой допустимый URL] (. https://webmasters.stackexchange.com/questions/49589/sitemap-xml-file-extension-does-it-have-to-be-xml) . Попробуйте отправить свой URL-адрес в Google Webmaster Tools, и вы сможете убедиться, что он работает.
Комментарии:
1. он спрашивал о файлах индекса sitemap, они содержат URL-адреса не на реальные страницы, а на другие файлы sitemap. Таким образом, вопрос заключался скорее не в том, какой URL-адрес может быть в карте сайта, а в том, какие URL-адреса могут иметь карты сайта (файлы XML).