本文是针对在linux平台下用apache搭建互联网web服务器、同时没有专业的防火墙设备的用户。php
在这种网络环境下可能会有这样的需求:大多数的数据你是但愿经过web服务器分享给全部用户;可是对于一些特殊的数据(如公司远程共享内部资料),或者对于一些特殊的web监控(如mysql的phpmyadmin应用)你只想让特定IP地址的用户访问。mysql
下面讲述用apahce的rewrite规则来实现限制其它IP容许特定IP地址访问特定虚拟主机服务,原理以下:linux
在web服务器上创建两个不一样的apahce虚拟主机,一个对公共用户(全部的用户),一个只针对特殊的IP地址用户能够访问。假设sodone_manage是针对特定IP的可访问虚拟主机的根目录,虚拟主机对应的域名为 phpmyadmin.sodone.com。web
咱们仍是用.htaccess的文件来实现rewrite。具体的.htaccess设置详见两种apache域名跳转法简单完成重定向中的“2.用.htaccess作域名跳转”。sql
咱们只要在.htaccess文件中增长下面的内容就实现了功能:apache
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^61.148.202.81 [NC]
RewriteCond %{HTTP_HOST} ^phpmyadmin.sodone.com [NC]
RewriteRule ^(.*) default [R=404]服务器
上面的4行代码实现当61.148.202.81这个IP访问phpmyadmin.sodone.com时,才能够访问到sodone_manage目录下来的业务数据;或者能够把phpmyadmin等应用程序放到sodone_manage目录中,只有61.148.202.81这个IP才能经过phpmyadmin.sodone.com来管理WEB服务器。其它任何IP地址访问phpmyadmin.sodone.com都会出现404错误页面。网络
固然你也能够不用404错误页,能够用RewriteRule把其它访问重定制到一个其它网址。dom
做者: SoDone酥蛋
原文地址:http://www.sodone.com/allow-specific-ip-address-apahce-web-security/ide
转载请注明做者与原文地址信息。