有时候我们在cnzz或者百度统计中看到自己的网站在同一秒被同一个IP或者IP段不停地恶意访问,然后跳转出去,这可能是有人在采集我们的网站,或者想给我们的apache服务器造成压力,这个时候我们就需要禁止一些ip访问,把他们加入黑名单中。
所以我们可以在自己的网站根目录中创建一个.htaccess文件,然后对deny或allow进行相关的配置,下面它们在apache服务器中的相关用法。
Deny禁止用户直接访问apache服务器目录内的文件
下面的代码就是禁止用户直接访问服务器中以.inc结尾的文件,如果用户访问,就会抛出404 Forbidden Error相关的错误,配置如下:
<Files ~ "\.inc$"> Order Allow,Deny Deny from All </Files>
Deny拒绝直接访问网站目录列表
如果您的目录中没有索引文件,用户访问你网站时就会在浏览器中列出你所有的目录,因此需要在.htaccess中加入以下这一行,当用户访问时,就会报404 Forbidden Error错误,让用户无法访问:
Options -Indexes
在一天的特定时间内禁止访问网站
在特定的时间点禁止访问网站目录文件,下面的例子是在16点(下午4点)不准用户访问,则在.htaccess中加入下面代码,如下:
RewriteEngine On # 24小时制则16点就是4点 RewriteCond %{TIME_HOUR} ^16$ # 拒绝所有访问 RewriteRule ^.*$ - [F,L]
在下午4点,5点,早上8点禁止用户访问,可以添加如下代码配置:
RewriteEngine On # 多个时间段 # 时间是 4 PM or 5 PM or 8 AM RewriteCond %{TIME_HOUR} ^16|17|08$ # 禁止所有访问 RewriteRule ^.*$ - [F,L]
Deny禁止访问某个目录
如果你想禁止用户访问某个目录,而这个目录如"images" 可能在你网站的不确定位置,你可以添加如下代码配置:
RewriteEngine On RewriteRule (^|/)images(/|$) - [F]
Deny禁止IP地址或IP地址段访问您的网站
网站被某个ip攻击时,我们可以添加如下代码即可:
deny from 173.236.241.100
如果网站被一些ip段恶意访问,则可以添加如下代码:
deny from 173.236.241
这表示ip从173.236.241.0 到 173.236.241.255这个范围的所有ip都将被禁止访问我们的网站,那些坏蛋会收到一个403 Fobidden Page这类型的错误。
允许某个特定IP访问我们的网站
有时候我们只允许某个ip地址的人访问我们的网站,而其它用户都无法访问,可以这样在.htaccess中添加配置,代码如下:
order deny,allow deny from all allow from YOUR_IP_ADDRESS #你的ip地址
Deny禁止某个特定的域名跳转到我们的网站
以下的代码就是禁止所有的用户通过www.example.com的域名访问我们的网站,例如一些用户通过example.com里面的链接点进我们的网站,都将收到一个403 Forbidden Error错误:
SetEnvIfNoCase Referer "example.com" bad_referer Order Allow,Deny Allow from ALL Deny from env=bad_referer
以下的链接会收到一个500 Internal Server Error错误,如果用户从example.com中链接进我们的网站的话:
RewriteEngine on RewriteCond %{HTTP_REFERER} example\.com [NC,OR] RewriteRule .* - [F]
以下链接会让从example.com点进来的用户重定向到一个特定的网站上去,如www.tpyyes.com上,代码如下:
RewriteEngine On RewriteCond %{HTTP_REFERER} ^http://example.com/ RewriteRule /* https://www.tpyyes.com [R,L]
上面就是deny相关的所有.htaccess文件相关配置方法,谢谢!