Apache中ServerAlias的设置,以及如何防止直接IP访问

每次配置Apache的时候,都没有去注意ServerAlias这个设置,今天在一台服务器上配置多台虚拟主机,并且试图阻止直接IP地址访问的时候引发了我来考虑这个问题。
首先,问题是由如何阻止IP直接访问引起的,当在一台主机上配置多个虚拟主机的时候,我不希望各个虚拟主机之间有什么干扰,当直接使用IP地址来访问的时候,我希望能够屏蔽掉。在推特上发起了这个问题,感谢 @mctxb  @liyangdal @zhoushuqun @houge_langley 一语惊醒梦中人,解决方法是“配置一个默认站点,默认站点设置为deny all”,很完美的解决了我的问题。

随后,我遇到了另外一个问题,比如我要配置域名aaa.com的时候,按照我一贯不假思索的做法就是“ServerName”和“ServerAlias”都设置成“www.aaa.com”,这样可以解决通过“www.aaa.com”来正常的访问但是“aaa.com”就无法正常的访问了。仔细看看“ServerAlias”这个名字,让我遐想万分,竟然它是以Alias结尾的,那么应该是来提供设置多个别名的咯,查看了一下Apache的帮助文件,果然如此。可以通过下面的设置来解决这个问题。

ServerName aaa.com  # 实际域名
ServerAlias www.aaa.com bbb.aaa.com ccc.aaa.com #别称
在ServerAlias中使用空格来隔开各个alias,另外你还可以使用“*.aaa.com”来接受所有aaa.com这个域的访问。

非常不错,还是要经常看手册啊。

0 Responses to "Apache中ServerAlias的设置,以及如何防止直接IP访问"