Перенаправьте .cn .jp .ch .eu .fr на домен.com на lighttpd - PullRequest
0 голосов
/ 15 января 2010

Я бы хотел перенаправить несколько доменов на наш адрес dotcom.

Домены имеют следующие расширения:

  • сп
  • 1008 * JP *
  • ч
  • ес
  • фр

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")
}

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 15 января 2010

Что-то не так с вашим регулярным выражением. (*) не имеет никакого смысла. Я думаю, вы более знакомы с синтаксисом glob . Просто помните:

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

В основном '.' означает что-либо, а '*' означает ноль или более раз этого чего-либо. Итак, я думаю, вы хотите:

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

Обратите внимание, что необходимо экранировать простые точки '\.', поскольку '.' означает любой символ вообще.

Также следует помнить, что в синтаксисе lighttpd переменная $HTTP["host"] не содержит пути . Вы выполняете извлечение пути в части url.redirect, а не в части $HTTP["host"]!

...