0

我想将几个域重定向到我们的 dotcom 地址。

这些域具有以下扩展名:

  • cn
  • J.P
  • ch
  • 欧盟
  • FR

www.domain.fr 应该指向 www.domain.com - sub.domain.fr 应该指向 sub.domain.com 并且扩展后的路径应该保持不变,以便 www.domain.fr/foo 指向 www.domain .com/foo

FR 只是一个例子。它应该按照解释的方式适用于所有扩展。对我来说,无论我们明确写 (cn|jp|ch|eu|fr) 还是设置通配符都无关紧要。

我尝试了以下不起作用:

$HTTP["host"] =~ "(*.)?domain\.(*)(/*)?$" {
     url.redirect = ("^/(.*)" => "http://%1.domain.com%3")
}

谢谢你的帮助!

4

1 回答 1

0

你的正则表达式有问题。(*) 毫无意义。我认为您更熟悉glob语法。只记得:

* (in glob) === .* (in regexp)

基本上'.'意味着任何东西,并且'*'意味着任何东西的零次或多次。所以我猜你想要:

$HTTP["host"] =~ "(.*\.)?domain\.(.*)$" {
    url.redirect = ("^(/.*)" => "http://%1.domain.com$1")
}

请注意,纯点需要转义'\.',因为它'.'表示任何字符。

另外,请记住,在 lighttpd 语法中,$HTTP["host"]变量不包含任何 path。您在零件中进行路径提取url.redirect,而不是在$HTTP["host"]零件中!

于 2010-01-15T19:07:46.183 回答