我有我的网站的域名:
example.com
我也用这些行运行本地DNS:
www IN CNAME server.<host_provider>.com. dev IN CNAME server.<host_provider>.com.
因此www.example.com和dev.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时,你会被redirect到www.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地址。