我有一个网站,人们在他们的网页上放置链接以访问我的网站。那里有几百个网站,上面有mysite.com:8080/url。我不再使用在8080上回答的程序,只是在端口80上有lighttpd监听。新的php程序查看引用URL以了解该站点是什么。我需要将所有mysite.com:8080 whatevers重定向到mysite.com,保留引用信息。听起来很简单,但我无法让它工作。如果我使用iptables将8080重定向到80,那么lighttpd并不会将它们引导到任何特定站点(服务器上有几个站点使用hosts变量来确定引导人们去的地方)。就像它在转到lighttpd之前剥离引用信息一样。我搜索和搜索,我找不到解决方案。
希望有人在这里帮忙。
答案 0 :(得分:0)
我会从像这样的配置开始。基本上,重定向到端口80任何进入8080的东西。
server.port = 80
...
$SERVER["socket"] == ":8080" {
$HTTP["host"] =~ "([^:/]+)" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}
}
答案 1 :(得分:0)
我基本上最终复制了8080部分内正常网站的其他部分。
$SERVER["socket"] == ":8080" {
server.document-root = "/home/mysite/public_html"
url.rewrite-once += ( "^/(.*)" => "/index.php" )
evasive.max-conns-per-ip = 10
server.error-handler-404 = "/e404.php"
}
获取引用信息的关键是将URL添加到URL重写。
是:
url.rewrite-once = ( "^/(.*)" => "/index.php" )
修复需要:
url.rewrite-once += ( "^/(.*)" => "/index.php" )
现在完美地工作。感谢您的帮助,并希望发布我的最终解决方案,以防有一天帮助其他人。
再次感谢。