[转载]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文件内容为:
1 2 3 4 5 6 |
<?php header("Content-Type:text/xml "); $f = new SaeFetchurl(); $data = $f->fetch("http://sishixiong-wordpress.stor.sinaapp.com/sitemap.xml"); echo $data; ?> |
可能在访问http://www.domain.cn/sitemap.php会提示:
载入样式表单出错: 发生未知错误:
http://www.domain.cn/sitemap.xsl
这时需要把把wp-contentpluginsgoogle-sitemap-generator(SVN下sitemap插件目录)里的sitemap.xsl复制到博客根目录即可。
四师兄在谷歌站长工具里重新提交sitemap,测试通过。呵呵。
参考资料:
- http://henmang.net/sina-sae-break-up-fee.cgi
- http://winysky.com/wordpress-upgrade-to-3-0-1-on-the-issue-get-in-the-background
- http://htmlpub.com/sitemap-xsl-error-805303f4.html
- http://seo.hi.cc/?p=1559
- http://blog.kiccp.com/793.html
- http://www.ehan.cn/p/95.html
发表回复