在<loc>标记,站点地图索引文件</loc>中包含查询的URL

时间:2014-07-06 19:29:34

标签: php xml .htaccess seo sitemap

是否允许在 sitemap_index.xml ?id=1代码中指定网址的<loc>部分?

我想创建一个动态站点地图。

我通过将此行AddType application/x-httpd-php .xml添加到.htaccess来启用php在.xml文件中执行,现在我想创建一个静态站点地图索引文件和一个动态站点地图文件,这里是我写的代码:

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 个答案:

答案 0 :(得分:0)

是。任何有效的网址都可以在网站地图中。一个带有查询字符串的URL(这是您的示例所示)是常见且正常的,通常可以在除最基本站点的站点地图之外的所有站点中找到。

是。您可以使用查询字符串获取站点地图网址。 [似乎任何有效的网址都可以工作](。https://webmasters.stackexchange.com/questions/49589/sitemap-xml-file-extension-does-it-have-to-be-xml)。尝试将您的网址提交给Google网站站长工具,您可以验证它是否有效。