域名恶意指向的问题解决
在IIS中我们可以方便的通过不同的IP或者端口再或者主机头来设置虚拟主机,在apache中也一样可以。 假设有www.123.com和www321.com两个域名,要同时指向一个服务器地址,通过这两个域名访问时,要呈现不同的内容,那就需要设置虚拟主机了。域名设置虚拟主机还需要DNS服务器的支持。 #Vi /etc/apache/httpd.conf namevirtualhost * <VirtualHost *>ServerName www.123.com DocumentRoot /var/www/nckz.org </VirtualHost> <VirtualHost *>ServerName www.321.com DocumentRoot /var/www/nckz.net </VirtualHost>
apache禁止使用IP访问的实现方法
用apache搭建的WEB服务器,如何让网友只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,有两个方法可以实现(仅限于我知道的,当然肯定还会有其他方法可以实现),都是修改httpd.conf文件来实现的,下面举例说明。
方法一:在httpd.conf文件最后面,加入以下代码
NameVirtualHost 221.*.*.*
<VirtualHost 221.*.*.*>
ServerName 221.*.*.*
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>
<VirtualHost 221.*.*.*>
DocumentRoot "c:/web"
ServerName www.webjx.com
</VirtualHost>
说明:以上部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求,这时如果你用221.*.*.*访问,会提示拒绝访问。红色部分就是允许通过www.webjx.com这个域名访问,主目录指向c:/web(这里假设你的网站的根目录是c:/web)
方法二:在httpd.conf文件最后面,加入以下代码
NameVirtualHost 221.*.*.*
<VirtualHost 221.*.*.*>
DocumentRoot "c:/test"
ServerName 221.*.*.*
</VirtualHost>
<VirtualHost 221.*.*.*>
DocumentRoot "c:/web"
ServerName www.webjx.com
</VirtualHost>
说明:以上部分是把通过221.*.*.*这个IP直接访问的请求指向c:/test目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。红色部分的意思跟方法一是一样的。
2. 禁止某些IP访问/只允许某些IP访问 如果要控制禁止某些非法IP访问,在Directory选项控制:
Order allow,deny Allow from all Deny from 10.0.0.1 #阻止一个IP Deny from 192.168.0.0/24 #阻止一个IP段
只允许某些IP访问,适合比如就允许内部或者合作公司访问:
Order deny,allow Deny from all All from example.com #允许某个域名 All from 10.0.0.1 #允许一个iP All from 10.0.0.1 10.0.0.2 #允许多个iP Allow from 10.1.0.0/255.255.0.0 #允许一个IP段,掩码对 All from 10.0.1 192.168 #允许一个IP段,后面不填写 All from 192.168.0.0/24 #允许一个IP段,网络号
注:修改后要重启apache>在httpd.conf文件中每条命令前都不要加空行。在写完配置文件后用 httpd -t -D httpd.conf 进行一下检查