2016-05-02 97 views
2

我的网站将采用3种语言。法语(fr)是默认语言。 该网站的结构如下:根据浏览器语言重定向用户(不在php中)

根目录(注:我没有使用PHP文件,只是普通的HTML)

/fr/ 
    Index.html 
    About-us.html 
    Contact.html 

/en/ 
    Index.html 
    About-us.html 
    Contact.html 

/de/ 
    Index.html 
    About-us.html 
    Contact.html 

我有问题要问:

  • 是什么基于Web浏览器语言重定向用户的最佳实践?通过htaccess?
  • 我需要一个index.html页面的根级别(为SEO的原因或任何其他原因)?法国的index.html也许?
+0

看看http://www.askapache.com/htaccess/modrewrite-tips-tricks.html - 你会在那里有'RewriteCond%{HTTP:Accept-Language} ^。*(de | es | $ [NC] RewriteRule ^(。*)$ - [env = prefer-language:%1]'这也可能很有用http://webmasters.stackexchange .com/questions/57524/htaccess-language-detection-redirect-and-friendly-urls - 你也可以使用JS,但这不是最有效的方法,如果JS在客户端被禁用。 –

+1

旁注:您知道您可以使用'.shtml'文件扩展名来进行包含(默认情况下,服务器设置的工作方式与此类似),并且我为其中一位使用此方法多年。但是,您可以指示服务器将'.html'文件作为'.shtml'处理,以便在使用相同头文件/导航/页脚时使您的网站更易于管理,而不必更新大量文件逐个。 –

+0

谢谢 - 我没有意识到这一点,这是很好的知道! – Greg

回答

1

超级简单的工具,在这里:

http://www.htaccesstools.com/redirection-by-language/

让生活非常容易htaccess的重定向基于浏览器的语言。

例子:

RewriteEngine on 
RewriteCond %{HTTP:Accept-Language} (fr) [NC] 
RewriteRule .* /fr/index.html [L] 
RewriteCond %{HTTP:Accept-Language} (en) [NC] 
RewriteRule .* /en/index.html [L] 
RewriteCond %{HTTP:Accept-Language} (de) [NC] 
RewriteRule .* /de/index.html [L] 

这是一个艰难的重定向,浏览器的地址栏会显示确实的新的一页。尽管如此,这对UX来说比内部重定向掩盖了URL更好。

为了回答你的问题,高度重视index.html提供了最好的UX。但是,这基本上是因为人们普遍期待这一点(网站:http://www/,website.com/fr/等)。 SEO明智的,不,如果你没有遵循同样的结构,你就不会受到伤害。

最佳做法是使用最佳猜测(如htaccess),并仍然提供切换语言的菜单。另外,如果Accept-Language没有实际定义(比如默认进入/ en /),还需要回退。这可能是htaccess中的最后一行,或者它可能仅仅是根级别的index.html,其中.htaccess是。

除此之外,没有大量的数据进入本地化。

+0

谢谢!我应该把index.html文件放在根目录下吗? (例如,如果语言浏览器不是这三种语言中的任何一种?)或者是否有重写规则将所有不是EN或DE的所有内容重定向到默认的法语页面? – Greg

+0

我当然也会设置一个默认的index.html,这就是你最常用的语言,它也提供了一个菜单来选择他们的语言。对不起,忘了包括那个。 –

相关问题