Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 拒绝文件中IP的访问_Apache_.htaccess - Fatal编程技术网

Apache 拒绝文件中IP的访问

Apache 拒绝文件中IP的访问,apache,.htaccess,Apache,.htaccess,是否有.htaccess命令拒绝访问特定文件中的每个ip? 假设我有一个名为bans.txt的文件(位于.htaccess文件旁边),其中包含一个简单的IP列表,一个在另一个下面。我想拒绝访问该文件中的每个ip。是否有一个简单的.htaccess命令可以执行此操作?比如: Deny from bans.txt 我一直在搜索,我不认为有,但只是检查一下,谢谢。事实上,有一种简单的方法可以完全从Apache完成这项任务。您需要使用名为 1-首先通过httpd.conf启用mod_rewrite和.

是否有.htaccess命令拒绝访问特定文件中的每个ip? 假设我有一个名为bans.txt的文件(位于.htaccess文件旁边),其中包含一个简单的IP列表,一个在另一个下面。我想拒绝访问该文件中的每个ip。是否有一个简单的.htaccess命令可以执行此操作?比如:

Deny from bans.txt

我一直在搜索,我不认为有,但只是检查一下,谢谢。

事实上,有一种简单的方法可以完全从Apache完成这项任务。您需要使用名为

1-首先通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放入
httpd.conf
以启用名为
ipmap
RewriteMap

RewriteMap ipmap txt:/some/path/to/ipmap.txt
2-然后创建文本文件
/some/path/to/ipmap.txt
,其中包含如下内容列出所有要禁止的IP

192.168.0.1 1
192.168.0.4 1
10.119.35.8 1
...
...
3-跳出Apache进程(因为您已经更改了
httpd.conf

4-最后将此代码放入
.htaccess
目录下的
$DOCUMENT\u ROOT
目录中:

RewriteEngine On
RewriteBase /

# if IP is found in ipmap then return Forbidden error
RewriteCond ${ipmap:%{REMOTE_ADDR}} ^1$
RewriteRule ^ - [F,L]

不客气,很高兴它成功了。RewriteMap还具有更出色的功能,例如允许您直接从.htaccess运行SQL或脚本。