0

我的默认页面中有一些脚本,可根据浏览器的语言将用户重定向到我网站的特定语言版本。我想添加一些东西来重定向那些没有启用 Javascript 的用户。

目前我有以下内容:

<noscript>
  <META HTTP-EQUIV=REFRESH CONTENT="1; URL=en/index.htm">.
</noscript>

但我读过这不是太明智,因为一些搜索引擎不赞成它。我该如何做到这一点并让搜索引擎满意?

4

5 回答 5

7

您应该使用 .htaccess 文件从标头中检测浏览器的语言(使用正则表达式),然后以这种方式重定向它们。这样做与客户端配置完全无关,搜索引擎会正确处理它。有大量关于如何实现这一点的信息。

于 2009-05-17T19:42:16.413 回答
5

可以通过添加以下 http 标头使用服务器端语言来完成

Location: /en/index

将用户重定向到http://www.example.com/en/index

于 2009-05-17T19:42:27.893 回答
3

您需要解析Accept-LanguageHTTP 标头

于 2009-05-17T19:43:35.270 回答
2

为什么不在服务器端重定向,通过 302 HTTP 状态代码进行响应。我不知道你在服务器上有什么,但所有框架都支持它。

于 2009-05-17T19:43:57.080 回答
2

您也可以使用 301 HTTP 状态代码在服务器端重定向。这是实现良好 SEO 的最佳方法。该示例在 C# 中,但每个平台都有自己的方法来将标头添加到响应中:

Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", "/newfolder/newfilelocation");

使用 301 状态码的原因是搜索引擎索引了新页面,因为它是“永久移动”而不是“临时移动”的 302。

于 2009-05-17T19:52:50.370 回答