如何重定向到默认主机名

时间:2011-03-23 09:12:33

标签: redirect dns webserver hostname

我想要类似的东西:

“http://www.anyhostname.com”==> “http://192.168.0.1”

即。我想将除“192.168.0.1”之外的任何请求重定向到“http://192.168.0.1”

我使用Lighttpd作为我的网络服务器,使用dnsmasq作为我的DNS服务器。

2 个答案:

答案 0 :(得分:0)

我不得不怀疑你是否正在做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/   存在,然后docroot仍然存在   /home/user/sites/default/site

如果您要处理特定的主机名,可以将其添加到/etc/hostsdnsmasq将为其提供服务。如果你想要处理几百个主机/域,这将有效,但如果你想处理一切,那么dnsmasq可能不是正确的工具。

我知道无论DNS问题如何,都可以使用PowerDNS's PipeBackend轻松给出相同的答案;这样,您可以轻松拦截请求并专门处理some or all请求。这样,您可以回答192.168.0.1 每个请求,某些请求或您可以编程的任何内容。

答案 1 :(得分:0)

好的,我解决了这个问题。在这里发布解决方案,希望它能帮助将来的某个人......

我通过修改lighttpd.conf文件解决了这个问题。我在lighttpd.conf文件中添加了以下内容:

$HTTP["host"] !~ "mydesiredhostname\.com" {
        url.redirect = (
                                "" => "http://192.168.0.1/"
                        )
}

感谢大家的时间。干杯!