将 no-www 转发到 www,包括子目录“/country-code”

Forward no-www to www including the sub-directories "/country-code"

我们的网站 "www.testa-omega3.com" 有 3 种不同的语言(德语、英语、荷兰语)。 我们的默认语言是荷兰语 (NL),这是目前的主要域名。

DE 和 EN 语言在子目录中:

当我们在浏览器中输入完整的 url 时,它将显示正确的页面。 DE 和 EN 的非 www 重定向不正确。

这些:
testa-omega3.com/en
testa-omega3.com/en/
testa-omega3.com/de
testa-omega3.com/de/

都重定向到 "www.testa-omega3.com"

目前我们的 htaccess 中有以下几行:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/ [R=301,L]

我们做错了什么?

您的(子)域匹配设置似乎不正确。当您实际想要与裸域匹配时,您的重写规则基于已经与 www 子域一起输入的 URL。

换行

RewriteCond %{HTTP_HOST} ^www\.domain\.com$

RewriteCond %{HTTP_HOST} ^domain\.com$

应该可以。

(顺便说一句,你的重写条件在我这边根本不起作用。我托管的服务器抱怨它陷入了循环。)

在我的重写规则中,我无法让 {HTTP_HOST} 变量按照您(重新)使用它的方式工作,但使用完整域名工作得很好:

RewriteRule ^(.*)$ http://www.domain.com/ [R=301,L]