我想要类似的东西:
"http://www.anyhostname.com" ==> "http://192.168.0.1"
即我想将除“192.168.0.1”以外的任何请求重定向到“http://192.168.0.1”
我使用 Lighttpd 作为我的网络服务器,使用 dnsmasq 作为我的 DNS 服务器。
我想知道您是否正在做透明代理——如果是这样,可能有更好的机制来完成您想做的事情,而不是按照您的目标进行概述。
但如果你想继续走这条路,我认为你可以使用 lighttpd 的mod_evhost
工具来轻松使用默认站点配置:
一般示例:
server.document-root = "/home/user/sites/default/site" evhost.path-pattern = "/home/user/sites/%0/site/"
如果
example.org
被请求并/home/user/sites/example.org/site/
找到,则该路径将成为 docroot。如果
example.net
请求但不存在名为的目录/home/user/sites/example.net/site/
,则保留 docroot/home/user/sites/default/site
如果您有要处理的特定主机名,您可以将它们添加到/etc/hosts
您的dnsmasq
服务器上。如果您有几百个要处理的主机/域,这将起作用,但如果您想处理所有内容,那么 dnsmasq 可能不是正确的工具。
我知道无论 DNS 问题如何,PowerDNS 的 PipeBackend都可以轻松给出相同的答案;这样,您可以轻松拦截请求并专门处理部分或全部请求。这样,您可以回答192.168.0.1
每个请求、某些请求或您可以编程的任何内容。
好的,我解决了这个问题。在这里发布解决方案,希望它对未来的人有所帮助......
我通过修改 lighttpd.conf 文件解决了这个问题。我在 lighttpd.conf 文件中添加了以下内容:
$HTTP["host"] !~ "mydesiredhostname\.com" {
url.redirect = (
"" => "http://192.168.0.1/"
)
}
谢谢大家的时间。干杯!