0

複数のドメインを当社のドットコム アドレスにリダイレクトしたいと考えています。

ドメインには次の拡張子があります。

  • cn
  • jp
  • チャンネル
  • EU
  • フランス

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

正規表現に問題があります。(*) 意味がありません。あなたはグロブ構文に精通していると思います。覚えとけ:

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

基本的に'.'何かを'*'意味し、その何かの0回以上を意味します。だから私はあなたが望むと思います:

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

任意の文字を意味する'\.'ため、通常のドットはエスケープする必要があることに注意してください。'.'

また、lighttpd 構文では、$HTTP["host"]変数に path が含まれていないことに注意してください。url.redirect部分ではなく、部分でパス抽出を行います$HTTP["host"]

于 2010-01-15T19:07:46.183 に答える