我尝试将我的XML Sitemap提供为described here。我有一个名为sitemap的页面,上面有Google Sitemap Index
。在“选定页面”下,我选择了页面本身。对于每种语言,我在站点地图下创建了一个子页面,其上有Google Sitemap for Pages
和相应的翻译。如果我调用站点地图(索引),我有多个条目:
<sitemapindex>
<sitemap>
<loc>http://www.yourdomain.com/sitemap/german.html</loc>
<lastmod>2012-05-25T12:39:19Z</lastmod></sitemap>
<sitemap>
<loc>http://www.yourdomain.com/sitemap/english.html</loc>
<lastmod>2012-05-25T12:39:19Z</lastmod>
</sitemap>
<sitemap>
<loc>http://www.yourdomain.com/sitemap/english.html</loc>
<lastmod>2012-05-25T12:39:19Z</lastmod>
</sitemap>
<sitemap>
<loc>http://www.yourdomain.com/sitemap/croatian.html</loc>
<lastmod>2012-05-25T12:39:19Z</lastmod>
</sitemap>
<sitemap>
<loc>http://www.yourdomain.com/sitemap/croatian.html</loc>
<lastmod>2012-05-25T12:39:19Z</lastmod>
</sitemap>
</sitemapindex>
如果我选择“选定页面”(索引站点地图),则sitemapindex
以外的子页面为空。如果我隐藏翻译我只有一个条目,但调用单独的站点地图(不同语言)不再起作用(请参阅我的网站而不是xml文件,页面为空白)。我无法禁用该记录,因为所有翻译都被禁用。
接下来,如果我致电http://www.yourdomain.com/sitemap/english.html
,我总会获得主要语言的站点地图。我已经扩展了我的htaccess:
RewriteCond %{QUERY_STRING} id=170
RewriteRule ^index.php$ index.php?id=170&L=0 [L]
RewriteCond %{QUERY_STRING} id=171
RewriteRule ^index.php$ index.php?id=171&L=1 [L]
RewriteCond %{QUERY_STRING} id=172
RewriteRule ^index.php$ index.php?id=172&L=2 [L]
我是否需要此处的完整路径而不是id=171
?
修改
我切换到以下内容:
Redirect /sitemap/german.html /index.php?id=170&L=0
Redirect /sitemap/english.html /index.php?id=171&L=1
Redirect /sitemap/croatian.html /index.php?id=172&L=2
Redirect /sitemap/german /index.php?id=170&L=0
Redirect /sitemap/english /index.php?id=171&L=1
Redirect /sitemap/croatian /index.php?id=172&L=2
唯一的缺点是现在我不再有说话网址了......
编辑2: 不是解决方案,但现在我提交了多个站点地图网址(翻译的站点地图),而不是上述整个流程。