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

时间:2015-10-26 21:38:02

标签: .htaccess url-rewriting rewrite no-www

我们有一个网站“www.testa-omega3.com”,有3种不同的语言(DE,EN,NL)。 我们的默认语言是荷兰语(NL),它目前是主要的域名。

DE和EN语言位于子目录中:

  • www.testa-omega3.com/de/
  • www.testa-omega3.com/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}/$1 [R=301,L]

我们做错了什么?

1 个答案:

答案 0 :(得分:0)

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

更改行

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

RewriteCond %{HTTP_HOST} ^domain\.com$

应该有用。

(你的重写条件对我来说根本不起作用;我主持的服务器抱怨它被卡在循环中。)

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

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