2015-10-26 23 views
1

我們有一個包含3種不同語言(DE,EN,NL)的網站「www.testa-omega3.com」。 我們的默認語言是荷蘭語(NL),目前它是主要的域名。將no-www轉發到www包括子目錄「/ country-code」

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] 

我們做錯了什麼?

+0

這不是完全清楚你想要做什麼。即使他們沒有在瀏覽器中輸入該部分,每個人都應該重定向到www子域嗎?但是如果提供語言「擴展名」應該保留下來? – Kay

+0

testa-omega3.com/en應重定向到www.testa-omega3.com/en/等。 – Vincent

回答

0

看來您的(子)域匹配設置不正確。您的重寫規則基於您實際想要與裸域名進行匹配時已使用www子域名輸入的網址。

更改線路

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

RewriteCond %{HTTP_HOST} ^domain\.com$ 

應該工作。

(你改寫條件根本不能在我結束工作,順便說一句。;我主持的服務器抱怨說,它陷在一個循環。)

在我重寫規則,我不能讓在{HTTP_HOST}變量工作,你(再)用它的方式,但使用的完整域名的工作只是罰款:

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

@Vincent,這是否解決了您的問題?如果是這樣,你能接受答案,所以你的問題被標記爲已解決? – Kay