浏览器语言检测和重定向与谷歌机器人

时间:2017-08-11 07:02:45

标签: php angular symfony

我尝试根据自己的语言自动检测浏览器语言并将用户重定向到正确的页面。网站是双语的,默认语言是波兰语,第二个是英语。默认语言与波兰语不同的人将被重定向到英语版本。

我在这里找到了其他问题的解决方案,结果我在我的控制器中为[Symfony 3]创建了一个动作:

public function indexAction(Request $request)
{
    $locale = $request->getPreferredLanguage(array('pl', 'en'));

    if($locale === "pl"){
        return $this->render('default/index.html.twig');
    }else{
        return $this->redirectToRoute('homepage_english', array(), 301);
    }
}

它似乎按预期工作。然而,事实证明谷歌机器人有这个解决方案的问题。他们无法访问和索引我的波兰语页面,因为它们被重定向到/ en,如Google控制台中的示例所示...

我做错了什么,或者我不应该推荐Google控制台并再等一会儿?

我很困惑......现在有超过一半的英文页面被索引,而波兰语只有一个 - 此外,更早,与之前的应用程序

1 个答案:

答案 0 :(得分:1)

你可以使用hreflang链接来"建议" Google的一个页面。这应该有助于为正确的语言索引页面。

一个例子是:

<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" />
<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" />
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />

Google提供了更多信息:https://support.google.com/webmasters/answer/189077?hl=en

相关问题