如何使用 .htaccess 阻止俄罗斯 IP 地址?

如何使用 .htaccess 阻止俄罗斯 IP 地址?

我将此代码添加到我的.htaccess文件中

#deny all russian IP's
Order allow,deny
deny from .ru
Allow from all

我的问题:

  1. 它可以存储在文件中的任何位置吗?我把它加到最后了。
  2. 我是否将代码放在根.htaccess文件中?我有很多.htaccess文件;它们分布在 Prestashop 网站上的各个地方。

在此处输入图片描述

答案1

它可以存储在文件中的任何位置吗?

是也不是。一般来说,如果你已经将它添加到文件末尾,那么应该没问题。但我之所以说“是也不是”,是因为如果不知道文件的其他内容,.htaccess就不可能给出明确的答案。据我所知,你还有其他allow/deny指令可能会干扰这个指令。

我是否将代码放在根 .htaccess 文件中?

.htaccess是的!它应该放在根目录中。我不太清楚Prestashop 网站中其他文件的逻辑,但我无法想象那些非根.htaccess文件会干扰。一般来说,.htaccess根目录中的文件将覆盖其下方的所有其他路径。

话虽如此,这种“四处寻找”的方法并不有效,因为您需要不断地更新它;它会给您带来比它本身更多的麻烦。

相反,如果你是系统管理员并且知道如何使用IP表IPSec那么这些工具就是比封锁整个 IP 范围更好的选择。它们比无休止地破解文件更快、更强大、更灵活.htaccessServer Fault 上的这个帖子解释了使用 IPsec 和 IPtables 进行国家/地区 IP 地址阻止的基础知识,值得一看。

但是,再说一次,由于这些实际上是用于 IP 阻止的更深级别的操作系统工具,如果您不习惯使用这样的工具,那么您最好暂时使用.htaccess

答案2

我认为……你不太明白 IP 地址和域名之间的关系。首先通常,除非你明确设置,否则一个或多个域名会映射到一个 IP 地址,而不是相反,当你设置 rdns - 您的典型 Web 服务器并不关心它。简而言之,.ru 在此上下文中对您的 Web 服务器没有任何意义。

你可能会问......“但是地理封锁怎么办?” - 嗯,你基本上会找到一个列表IP 地址 - 又名 geoip 数据库,并使用一些工具为您进行阻止。

.htaccess 文件实际上是对特定目录的覆盖。值得记住的是Apache 实际上不建议使用它如果如果你想阻止某些东西,它应该设置在主配置文件

稍微捣鼓一下 - 显然你可以从互联网上获取 htaccess 文件列表IP 范围 - 我生成的这里对于俄罗斯来说大约是 3mb - 而且我不确定在你的服务器上拦截大量 IP 地址范围会产生什么影响

相关内容