lighttpd 做301重定向设置方法详解

前言:租用国外VPS,控制面板采用的是Kloxo,其中可以设置rewrite规则。开始以为是在“lighttpd地址重写规则”中去进行301设置。但是网络上找了很多,均不正确,下面以个人实例进行一下详细的描述。说一下主要的目的:在搜索引擎中发现百度收录的全部是selmy.org,而不是www.selmy.org,所以就起了把selmy.org重定向到www.selmy.org的想法。

首先纠正上传一个错误[是否错误现在我也没有搞清楚]:上次文章《域名重定向设置方法》中第二条win2003环境重定向设置。这个用工具检测得到是的302临时定向,这样导致我很疑惑。

所以决定把网站转移到国外的lighttpd的服务器上进行下测试。测试过程:

1:使用putty登陆linux服务器。

2:/etc/lighttpd/conf/kloxo/lighttpd.yourdomain.com [注解:yourdomain.com为你的域名,我的也就是lighttpd.selmy.org]

3:使用vi编辑lighttpd.selmy.org。[默认中有很多的配置文件]

4:第一次配置如下:

$HTTP[“host”] = “selmy.org|www.selmy.org” {
url.redirect = (“^/(.*)” => “http://www.selmy.org/$1”)
alias.url = (“/__kloxo” => “/home/admin/kloxoscript”)
url.redirect = (“/webmail” => “http://webmail.selmy.org”)
url.redirect += (“^kloxo$” => “https://cp.selmy.org:7777”)
url.redirect += (“/kloxononssl” => “http://cp.selmy.org:7778”)
url.redirect += (“/stats/” => “http://selmy.org/awstats/awstats.pl”)
url.redirect += (“/stats” => “http://selmy.org/awstats/awstats.pl”)
server.document-root = “/home/admin/xlblp/”
index-file.names = (“index.php”, “index.html”, “index.shtml”, “index.htm”, “default.htm”, “Default.aspx”, “Default.asp”, “index.pl”)
alias.url += ( “/awstatsicons” => “/home/kloxo/httpd/awstats/wwwroot/icon/” )
alias.url += ( “/awstatscss” => “/home/kloxo/httpd/awstats/wwwroot/css/” )
alias.url += (“/awstats/” => “/home/kloxo/httpd/awstats/wwwroot/cgi-bin/”)
$HTTP[“url”] =~ “^/awstats” {
cgi.assign = ( “.pl” => “//home/httpd/selmy.org/perlsuexec.sh” )
}
alias.url += ( “/cgi-bin” => “/home/admin/xlblp/cgi-bin/”)
$HTTP[“url”] =~ “^/cgi-bin” {
cgi.assign = ( “” => “//home/httpd/selmy.org/shsuexec.sh” )
}

accesslog.filename = “/home/httpd/selmy.org/stats/selmy.org-custom_log”
server.errorlog = “/home/httpd/selmy.org/stats/selmy.org-error_log”
cgi.assign = ( “.php” => “/home/httpd/selmy.org/phpsuexec.sh”,
“.pl” => “/home/httpd/selmy.org/perlsuexec.sh” )
$HTTP[“url”] =~ “^/stats” {
dir-listing.activate = “enable”
}
}

如上配置,重新启动lighttpd服务后,提示配置错误,具体也没有保存,请见谅。

第二次配置如下:

$HTTP[“host”] = “selmy.org” {
url.redirect = (“^/(.*)” => “http://www.selmy.org/$1”)
}
$HTTP[“host”] =~ “^(www.selmy.org)”{

alias.url = (“/__kloxo” => “/home/admin/kloxoscript”)
url.redirect = (“/webmail” => “http://webmail.selmy.org”)
url.redirect += (“^kloxo$” => “https://cp.selmy.org:7777”)
url.redirect += (“/kloxononssl” => “http://cp.selmy.org:7778”)
url.redirect += (“/stats/” => “http://selmy.org/awstats/awstats.pl”)
url.redirect += (“/stats” => “http://selmy.org/awstats/awstats.pl”)
server.document-root = “/home/admin/xlblp/”
index-file.names = (“index.php”, “index.html”, “index.shtml”, “index.htm”, “default.htm”, “Default.aspx”, “Default.asp”, “index.pl”)
alias.url += ( “/awstatsicons” => “/home/kloxo/httpd/awstats/wwwroot/icon/” )
alias.url += ( “/awstatscss” => “/home/kloxo/httpd/awstats/wwwroot/css/” )
alias.url += (“/awstats/” => “/home/kloxo/httpd/awstats/wwwroot/cgi-bin/”)
$HTTP[“url”] =~ “^/awstats” {
cgi.assign = ( “.pl” => “//home/httpd/selmy.org/perlsuexec.sh” )
}
alias.url += ( “/cgi-bin” => “/home/admin/xlblp/cgi-bin/”)
$HTTP[“url”] =~ “^/cgi-bin” {
cgi.assign = ( “” => “//home/httpd/selmy.org/shsuexec.sh” )
}

accesslog.filename = “/home/httpd/selmy.org/stats/selmy.org-custom_log”
server.errorlog = “/home/httpd/selmy.org/stats/selmy.org-error_log”
cgi.assign = ( “.php” => “/home/httpd/selmy.org/phpsuexec.sh”,
“.pl” => “/home/httpd/selmy.org/perlsuexec.sh” )
$HTTP[“url”] =~ “^/stats” {
dir-listing.activate = “enable”
}
}

第一次设置后,重新启动lighttpd服务,没有提示错误,也就是配置正确。

细心的朋友可以仔细对比下。希望可以帮助到大家。通过以上设置,检测后为301永久定向,而非302临时定向。

作者:selmy

申明:此文为selmy原创,转载请保留作者信息和网站链接地址。

链接:http://www.selmy.org/2010/12/04/lighttpd-301-kloxo/
帮助文档:http://www.hostwiki.info/kloxo/301?s[]=301