本地DNS和Apache服务器configuration干扰 – example.com / www.example.com

我有我的网站的域名:

example.com

我也用这些行运行本地DNS:

 www IN CNAME server.<host_provider>.com. dev IN CNAME server.<host_provider>.com. 

因此www.example.comdev.example.com转到由主机公司托pipe的生产和开发站点。

在我的主站点的Apacheconfiguration中,我正在运行一个像这样的重写规则:

 RewriteEngine ON RewriteCond %{HTTP_HOST} ^example\.com$|!dev\.example\.com$ [NC] RewriteRule ^(.*)$ http://www\.%{HTTP_HOST}/$1 [R=302,L,NE] 

这个规则似乎有效,因为当你离开networking并在浏览器中转到example.com时,你会被redirectwww.example.com

问题是当我在networking上,我去的example.com我得到一个错误页面,说网页无法find。 没有服务器错误; 只是一个页面不能被发现,就好像本地DNS正在导致它停止看那一点。

我也使用Nettica的DNS服务,并有这个logging:

 example.com Host (A) Default xxx.xx.xxx.xx 

这处理外部DNS,但我的问题似乎与我的内部DNS有关。

例如,在我的networking中,我可以使用如下地址访问networking上的服务器:

server.example.com server1.example.com server2.example.com

这些configuration在我的本地DNS。 我只是不知道如何通过“空”子域去到example.com

除此之外,可能还不清楚。 如果我站在example.comnetworking的外部,在example123.com等另一个networking上,那么当我访问example.com时,我会按照预期redirect到www.example.com ,例如,Apache重写规则正在工作。

编辑

在@ErikE的帮助和疑难解答和testing,我find了答案。 似乎我发现了另一种方式@埃里克的build议:

在本地DNS添加其中一个似乎工作:

 example.com IN CNAME server.<host_provider>.com. example.com IN CNAME www.example.com. 

谢谢。

这听起来像你需要一个空的Alogging(或其他logging相同的效果)本地dns域example.com本身。

如果我没有记错的话(自从我上次做了这个以来已经过去了一段时间),在BIND中,可以使用example.com区域文件中的以下语法来实现:

 A 1.2.3.4 

或在Windows DNS中:

 @ IN A 1.2.3.4 

但是,例如使用dnsmasq将以完全不同的方式进行configuration。 那么,你在本地使用什么品牌的dns服务器呢?

我不确定是否可以用同样的方式编写CNAMElogging。 你当然可以尝试,如果你想引用你的提供者,而不是写在你的本地DNS明确的IP地址。