有时候需要将一个url重定向到另外一个url上。 如最简单的将不带www的域名重定向到www上,例如将domain.com重定向到www.domain.com上。
这时候就可以使用mod_redirect模块。 如上面的例子可以在/etc/lighttpd/lighttpd.conf中使用下面的代码来解决:
$HTTP["host"] =~ "^([^.]+.[^.]+)$" {
url.redirect = (
".*" => "http://www.%1"
)
}
其中,%1表示$HTTP“host” 中正则表达式中括号中匹配的内容。%1表示第一个匹配值,%2表示第二个匹配值。%0表示整个字符串
再如,希望把www.prosight.me/blog/index.php/2009/03/archives/321这样的url跳转到blog.prosight.me/index.php/2009/03/321这个url上的话,就使用如下配置:
$HTTP["host"] == "www.prosight.me" {
url.redirect = (
"^/blog/index.php/([0-9]+/[0-9]+)/archives/([0-9]+)$"
=> "http://blog.prosight.me/index.php/$1/$2",
"^/blog(/)?$" => "http://blog.prosight.me"
)
}
其中 $1表示在url.redirect里正则表达式中第一个括号匹配的内容,$2表示第二个匹配的内容,以此类推。
url.redirect可以放置在任何$HTTP“host” 块中,与其他模块共同使用。例如与rewrite一同使用,或者跟server.document-root属性一起使用来共同配置一个虚拟主机。