将en.example.com重定向到example.com/index.php?language=en

时间:2009-12-26 23:45:21

标签: mod-rewrite multilingual lighttpd

我想重定向以:

开头的地址
en.example.com/somefile.php

为:

example.com/somefile.php?language=en

在lighttpd中使用mod_rewrite模块。到现在为止我得到了这个:

$HTTP["host"] =~ "^en\.(.*)\.com$" {
        url.rewrite-once = (
                "^/(.*)"
                =>
                "/$1?language=en"
        )
}

但这似乎不起作用。如何使这项工作?

3 个答案:

答案 0 :(得分:6)

试试这个:

$HTTP["host"] =~ "^en\.([^/.]+)\.com$" {
    url.rewrite-once = (
        "^/([^?]*)(\?(.*))?" => "http://%1/$1?language=en&$3"
    )
}

答案 1 :(得分:3)

试试这个

$HTTP["host"] !~ "^(en|fr)\.([^.]+\.com)$ {
    url.rewrite-once = (
      "^/(.*)" => "http://%2/$1&language=%1" 
    )
  }

这应该重写子域en。和/或fr。对于URL字符串完整的任何域(包括TLD),并附加语言参数。

示例:

http://en.example.com            -> http://example.com/&language=en
http://fr.example.com/directory/ -> http://example.com/directory/&language=fr

答案 2 :(得分:0)

试试以下..如果它对您有用..

$ HTTP [“host”] =〜“^ en。([^。] +。com [a-z0-9 - ] + .php)$”{         url.rewrite-once =(                 “^ /(。*)”                 =>                 “/ $ 1吗?语言= EN”         ) }