1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

交流 xenforo生成的sitemap百度不能识别的解决办法

本帖由 xinli_zhao2015-01-05 发布。版面名称:XenForo中文版

  1. xinli_zhao

    xinli_zhao VIP会员

    注册:
    2012-03-03
    帖子:
    86
    赞:
    23
    Xenforo1.4版中,加入了sitemap网站地图的生成功能,设置好后会按计划任务生产网站地址,输入网址/sitemap.php,就可以下载到网站生成的网址地图文件

    XENFORO生成的网站中,其中lastmod地段,使用了W3C的标准格式,含有精确的日期及时间,这样生成的sitemap.xml ,GOOGLE可以正常识别,但提交到百度后,出现错误,不能正常识别,提示有无效的URL,后经过修改解决如下:
    使用EDITPLUS打开文件:library/XenForo/Model/Sitemap.php

    找到:$content .= '<lastmod>' . gmdate(DateTime::W3C, $result['lastmod']) . '</lastmod>';

    更改为:$content .= '<lastmod>' . date('Y-m-d', $result['lastmod']) . '</lastmod>';

    找到:$output .= "\t" . '<sitemap><loc>' . htmlspecialchars($url) . '</loc><lastmod>' . gmdate(DateTime::W3C, $sitemap['complete_date']) . '</lastmod></sitemap>' . "\n";

    更改为:$output .= "\t" . '<sitemap><loc>' . htmlspecialchars($url) . '</loc><lastmod>' . date('Y-m-d', $sitemap['complete_date']) . '</lastmod></sitemap>' . "\n";

    保存,进入后台,重建缓存,重新生产站点地图即可
     
    已获得 admin 的点赞。
  2. xinli_zhao

    xinli_zhao VIP会员

    注册:
    2012-03-03
    帖子:
    86
    赞:
    23
    目前看来好像是有问题的
    因为这样提交sitemap.php还是不行,必须执行sitemap.php后,下载到的XML,直接提交这个XML才可以解析
    以前使用IPB,提交压缩后的GZ文件可以的,但是XENFORO不行,怪事了
     
    已获得 admin 的点赞。
  3. wangyu1314

    wangyu1314 VIP会员

    注册:
    2013-09-27
    帖子:
    27
    赞:
    2
    楼主最后怎么解决的?
     
  4. xinli_zhao

    xinli_zhao VIP会员

    注册:
    2012-03-03
    帖子:
    86
    赞:
    23
    rewrite一下就可以了,写一个地址,将sitemap.php?c=1写成sitemap-1.xml.gz就可以了,百度的SITEMAP不支持动态的,伪静态可以的
     
  5. wangyu1314

    wangyu1314 VIP会员

    注册:
    2013-09-27
    帖子:
    27
    赞:
    2
    写了一个这样的地址,还是不行哦。可以直接下载sitemap-1.xml.gz了,但是百度仍然不行,主要是sitemap.php里生成的链接是动态的。你是怎么解决的?谢谢。
    location / {
    try_files $uri $uri/ /index.php?$uri&$args;
    rewrite sitemap-([0-9]+).xml.gz$ /sitemap.php?c=$1 permanent;
    index index.php index.html;
    }
     
  6. xinli_zhao

    xinli_zhao VIP会员

    注册:
    2012-03-03
    帖子:
    86
    赞:
    23
    我的规则是:
    rewrite ^/sitemaps-(.*).xml.gz$ /sitemap.php?c=$1 permanent;
    我的可以正常收录
    sitempas.JPG
     
  7. wangyu1314

    wangyu1314 VIP会员

    注册:
    2013-09-27
    帖子:
    27
    赞:
    2
    你直接给百度提交的许多个单个的sitemap-1.xml.gz吗?而不是sitmap.php吗?
     
  8. xinli_zhao

    xinli_zhao VIP会员

    注册:
    2012-03-03
    帖子:
    86
    赞:
    23
    肯定是单个啊,否则你的REWRITE写了企不是白写
    因为网址的数量不会太多,每个文件有5万个地址,一般的网站都满足要求了
     
  9. wangyu1314

    wangyu1314 VIP会员

    注册:
    2013-09-27
    帖子:
    27
    赞:
    2
    恩,谢谢回复,我今早就单个提交了,百度来收录了,谢谢这段时间来的指导。
     
正在加载...