如何通过语言功能将 htaccess 重定向与 www 合并到非 www 以及 http 到 https?浏览器 return:err_too_many_redirects

How to merge htaccess redirect by language function with www to non www and http to https? browsers return: err_too_many_redirects

我必须在这 3 个条件下工作,因为我的网站同时支持英语和西班牙语,具体取决于浏览器,它必须重定向到西班牙语或保持英语,我需要确保我的所有访问者都能访问它,无论他们是通过 www 或非 www 访问,在 ES 或 EN 场景中必须始终指向 https

RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [OR]
RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^$ https://mywebsite/es/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(en|es)/?$ index.html?lang= [QSA,NC,L]

免责声明:我的演讲没有直接回答你的问题。

正如之前的评论所述,语言重定向不是最佳做法。最好的方法(也是 Google 推荐的方法)是:

  • 第一步:首先访问根据IP和浏览器语言猜测用户使用的语言,
  • 第 2 步(绝对必要的步骤):向用户显示您的猜测(在弹出窗口中)并请求他确认您的猜测或设置他正确的语言,
  • 步骤 3:用户操作后设置带有语言选择的 cookie,并在进一步访问时根据 htis cookie 重定向他。

Googlebot 没有获取 cookie - 它应该仅根据 hreflang 链接抓取不同的语言版本。