按语言自动重定向静态HTML5页面



我有一个不使用javascript的静态html5网站。现在,我想将自动语音识别集成到网站中,这将根据您的语言引导您进入不同的页面。

这就是我的想象:

en -> main.com
de -> main.com/de
fr -> main.com/fr

为了实现这一点,我在我的网站上添加了以下元数据:

<link rel="alternate" href="main.html" hreflang="en" />
<link rel="alternate" href="main-de.html" hreflang="de" />
<link rel="alternate" href="main-fr.html" hreflang="fr" />

不幸的是,我现在无法处理docker和nginx,也许你们中的一个可以帮忙。

这实际上不是Docker或nginx的问题。

据我所知,hreflang="en"更多地用于SEO/谷歌抓取等,所以你仍然需要一些方法来进行自动重定向。

有多种方法可以做到这一点,但最好的方法是使用一点Javascript,理论上你可以使用nginx和IP地址在服务器端实现这一点。但这不是一个好主意,浏览器语言应该是最好的。

因此,只要有一点Javascript,你就可以做->

if (navigator.language.split('-')[0] === 'de') location.href = 'main-de.html';`

您可以使用nginx打开Accept-Language请求头,以重定向到正确的文件。有一个名为nginx_accept_language的模块可能会起到这个作用,尽管如果你不想在额外的模块中编译,你也可以在nginx-config中使用if-else阶段处理程序(这是为数不多的按预期使用它的一次(。

我自己没有使用nginx_accept_language模块的经验,但它似乎可以随心所欲。代码在这里:https://github.com/giom/nginx_accept_language_module

文档中的这个示例配置基本上完成了您想要做的事情:

location / { 
set_from_accept_language $lang pt en;
if ( $request_uri ~ ^/$ ) { 
rewrite ^/$ /$lang redirect;
break; 
}
}

最新更新