在多语言joomla网站上,我有每个语言的虚拟子文件夹,如下所示:
但是,在Google网站站长工具中,当我抓取时,我有404:
我试过了:
RewriteRule ^en/mypage$ http://www.example.com/en/mypage? [L,R=301]
但当然它会使循环重定向无效。
我该如何解决这类问题?
有没有办法取代langage param,总能得到这样的东西:
答案 0 :(得分:0)
如果我正确理解您的问题,那么一种解决方案就是更改您的站点地图。这就是我通常在我的多语言Joomla网站上这样做的方式。
1 - 安装Xmap
2 - 来自Joomla后端> Xmap,我创建了一个新的站点地图,在菜单选项下,我包含了我想用所有语言编制索引的所有菜单链接
3 - 发布并保存后,请记下此新站点地图的Xmap ID。
4 - 创建一个新的文本文件,类似于下面的内容。将其保存到您网站的根目录为sitemap.xml
请注意,您可能需要将xmap ID更改为上面的mantch 3,并且您需要为您网站上的每种语言添加<loc>
条目
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://your_domain/index.php?option=com_xmap&view=xml&id=1&lang=en</loc>
</sitemap>
<sitemap>
<loc>http://your_domain/index.php?option=com_xmap&view=xml&id=1&lang=fr</loc>
</sitemap>
</sitemapindex>
5 - 检查您现在可以使用上述<loc>
行中的网址直接访问每种语言的站点地图,例如:
http://your_domain/index.php?option=com_xmap&view=xml&id=1&lang=en
6 - 将http://your_domain/sitemap.xml
提交给网站站长工具,作为站点地图的位置。谷歌足够聪明,可以在此之后找出语言设置。
答案 1 :(得分:0)
这有点晚了,但是我使用的解决方案(大卫的回答是一个非常好的开始)。
Xmap不再存在,OSmap不是最好的解决方案,因为它不遵循Google对多语言站点地图的建议,并且说每个链接都需要<xhtml:link rel="alternate"[...]
。
所以:我用OSmap来获取所有链接quiclky;然后我手动创建一个格式正确的站点地图。然后我将我的站点地图发布到网站管理员工具(每种语言都有一个),然后我放置了一个sitemap_index.xml来帮助抓取工具找到它们。