我有一个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