[转载]Google XML Generator for SAE无法生成xsl的解决

原文链接

由于Sina App Engine(SAE)的文件系统不可写,所以无法在根目录生成sitemap.xml。需要通过sae版的Google XML Sitemaps。安装sae版的Google XML Sitemaps后,可以正常生成sitemap.xml,但无法打开,提示:

载入样式表单出错: 发生未知错误 (805303f4)

http://wordpress.stor.sinaapp.com/wp-content/plugins/google-sitemap-generator/sitemap.xsl

发生这种问题的根本原因是sitemap.xml在Storage里,而sitemap.xsl在插件目录,不在同一个域名下。解决的办法是在插件设置里取消勾选“选择默认的”,输入包含一个 XSLT 清单:sitemap.xsl,然后再重建sitemap.xml就可以了。

还是不可以的话,把wp-contentpluginsgoogle-sitemap-generator(SVN下sitemap插件目录)里的sitemap.xsl复制到STORAGE里的wordpress存储的根目录里。上传之后的路径是http://wordpress.stor.sinaapp.com/sitemap.xsl 和sitemap.xml同目录。这样再重建一次,更新缓存,就能访问sitemap.xml了。

其实,Google XML Sitemaps For SAE插件通过将生成的SiteMap XML存放到Storage中,成功地绕开了SAE环境的限制。但是,其同时也带来了另外一个问题:由于SiteMap存储在Storage中,所以SiteMap的URL是类似于http://wordpress.stor.sinaapp.com/sitemap.xml这样的格式,SiteMap URL中的域名和你博客的域名显然不一致。大家都知道,在Google Webmaster中提交SiteMap的时候,需要保证你的SiteMap在你的站点的域名之下。这时就需要用到SAE提供的FetchUrl功能。在博客的根目录写一个sitemap.php,当搜索引擎访问这个页面时,由SAE去Fetch前面Google XML Sitemaps For SAE生成的Sitemap文件,这样,路径问题就可以成功解决了。比如:我的站点地图的URL是:http://www.domain.cn/sitemap.php,而它实际上则是Fetch的Storage中的文件,只不过路径改变了而已。sitemap.php文件内容为:

可能在访问http://www.domain.cn/sitemap.php会提示:

载入样式表单出错: 发生未知错误:

http://www.domain.cn/sitemap.xsl

这时需要把把wp-contentpluginsgoogle-sitemap-generator(SVN下sitemap插件目录)里的sitemap.xsl复制到博客根目录即可。

四师兄在谷歌站长工具里重新提交sitemap,测试通过。呵呵。

参考资料:

  1. http://henmang.net/sina-sae-break-up-fee.cgi
  2. http://winysky.com/wordpress-upgrade-to-3-0-1-on-the-issue-get-in-the-background
  3. http://htmlpub.com/sitemap-xsl-error-805303f4.html
  4. http://seo.hi.cc/?p=1559
  5. http://blog.kiccp.com/793.html
  6. http://www.ehan.cn/p/95.html

发表评论