我有一個Drupal 6多點,與2個域(www.example.com和www.domain.com),共享一些常見的內容。Drupal的多站點的htaccess:重寫所有語言默認語言的一個子網站
域example.com有三種語言(EN,FR,NL)。語言由路徑前綴(/ en,/ fr,/ nl)設置。其他域domain.com只是一種語言(NL)。
問題:多次domain.com在錯誤的語言顯示,即使沒有路徑前綴填充不知怎的,它似乎默認爲EN,儘管它不總是這樣 - 行爲似乎並不一致。
解決方案(至少我希望如此):因爲我不是一個Drupal開發人員(我inhereted從一個前同事的部位)我不知道如何在Drupal來解決這個問題,所以我想最好的修復它的方法是將一些重寫規則添加到.htaccess中。
我不是htaccess /正則表達式專家,並且無法正常工作。你可以在下面找到我目前的重寫規則,任何幫助或建議都是非常受歡迎的。
一些例子:
www.domain.com/fr/some-title
需要被重寫,以www.domain.com/nl/some-title
www.domain.com/node/1975
需要被重寫,以www.domain.com/nl/node/1975
這些是已經在那裏重寫規則:
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
我嘗試添加此:
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC]
RewriteRule ^/(.*)$ /nl/$1
,並期望這只是在前面加上/ NL /所有路徑(因此是不因爲/fr/some-title
一個完整的解決方案將成爲/nl/fr/some-title
) - 但是,快速測試顯示我說:
/fr/some-title
改寫爲/nl/some-title
(這正是我需要的,但不是我所期望的)/some-title
不可重寫問題:任何想法可能是什麼問題?或者這可能是由其他(Drupal)設置引起的?還是有更好的方法來解決我的問題?
只是爲了完整起見:直播網站www.cinemazuid.be
在* admin/settings/language *中,您可以設置默認語言。雖然我不知道這是如何工作在彩泥上。你檢查過了嗎?我猜你在其他人之前加了你的RewriteRule * (L表示之後不會執行其他RewriteRules) – lumbric 2011-12-28 14:53:23
@lumbric 1)/ nl被設置爲默認值。 2)是的重寫規則是*之前的*重寫規則結尾的L. 3)我不明白你的第二個評論: -/ – ptriek 2011-12-28 15:00:35
嗯,不是Drupal榮譽'接受語言? – fge 2011-12-28 15:16:01