我想是这样的:如何重定向到一个默认的主机名
“http://www.anyhostname.com” ==> “http://192.168.0.1”
即我想将除“192.168.0.1”以外的任何请求重定向到“http://192.168.0.1”
我使用Lighttpd作为我的网络服务器,dnsmasq作为我的DNS服务器。
我想是这样的:如何重定向到一个默认的主机名
“http://www.anyhostname.com” ==> “http://192.168.0.1”
即我想将除“192.168.0.1”以外的任何请求重定向到“http://192.168.0.1”
我使用Lighttpd作为我的网络服务器,dnsmasq作为我的DNS服务器。
好的,我解决了这个问题。在这里发布解决方案,希望它可以帮助未来的人...
我通过修改lighttpd.conf文件解决了这个问题。我说我lighttpd.conf文件中的以下内容:
$HTTP["host"] !~ "mydesiredhostname\.com" {
url.redirect = (
"" => "http://192.168.0.1/"
)
}
谢谢大家对你的时间。干杯!
我不知道你是否在做transparent proxying - 如果是的话,可能会有更好的机制来完成你想做的事情,而不是从字面上做你所概述的目标。
但是,如果你想继续走这条路,我认为你可以使用的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/
存在,那么文档根仍然/home/user/sites/default/site
如果您有要处理具体的主机名,你可以将它们添加到/etc/hosts
和你dnsmasq
将为他们服务。如果你有几百个你想要处理的主机/域名,这可以工作,但如果你想处理,那么dnsmasq可能不是正确的工具。
我知道PowerDNS's PipeBackend可以用来轻松地给出相同的答案,无论DNS问题;这样,您可以轻松拦截请求并专门处理请求。这样,你可以回答192.168.0.1
每请求,一些请求,或任何你可以编程。
你知道如何用lighttpd或dnsmasq特别实现这个功能吗? – 2011-03-23 10:07:25
Lighttpd看起来好像可以,查看'mod_evhost'的文档以获取详细信息;我复制的小“通用示例”表明,它可以在大致两行配置中完成。我不认为dnsmasq可以完成你对_all_域的所有操作,但通过'/ etc/hosts'处理几百个应该很简单。 – sarnold 2011-03-23 10:10:27
我没有多个网站在我的网络服务器上运行......我只是想确保对于除我的主机名以外的任何该死的请求,该请求默认被重定向到“http://192.168.0.1”...可以这个成就了吗? – 2011-03-23 10:49:35