私はlighttpd 1.4.28を使用しています
これが私のリダイレクトルールです:
$HTTP["host"] =~ "^([^.]+\.[^.]+)$" {
url.redirect = ( "^/(.*)" => "http://www.%0/$1" )
}
anydomain.anytld を www.anydomain.anytld にリダイレクトすることになっており、ここに書いたように魅力的に機能します (もちろん、%1 を使用しても機能します。これは括弧を参照するためです)。
しかし、トリガーの正規表現に見られる括弧のペアでのみ機能する理由については、私は困惑しています。
%0 は結果全体をキャッチするはずですよね? %1、%2 などとは異なり、括弧のペアを参照することさえありません。しかし、これらの括弧を削除すると、次のようになります。
$HTTP["host"] =~ "^[^.]+\.[^.]+$" {
url.redirect = ( "^/(.*)" => "http://www.%0/$1" )
}
lighttpd を再起動しようとすると、次のエラーが発生します。
到達不能else条件2012-10-17 11:34:10: (configfile.c.918) ソース: /etc/lighttpd/lighttpd.conf 行: 173 位置: 14 パーサーが何らかの理由でここの近くで失敗しました: (EOL)
ありがとう !