如何使用 LAMP 堆栈阻止某些国家/地区访问我的网站?

如何使用 LAMP 堆栈阻止某些国家/地区访问我的网站?

我有一个网站,但不想让整个国家的人都看到。该网站在 LAMP 服务器上运行。我该如何实现?

答案1

使用 mod_geoip 模块。 http://www.maxmind.com/app/mod_geoip

例如:

GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry

# ... place more countries here
Deny from env=BlockCountry

答案2

您可以使用 rewrite_mod 的 REMOTE_ADDR 条件将被禁止的用户重定向到单个页面,描述他们不允许进入的事实,或者只是给他们一个 403 错误。

RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.[0-9]{3}$ 
RewriteRule .* ...

要获取某个国家/地区的 IP 范围,请获取麦克斯敏德例如数据库。

答案3

检查 IP 并确定哪个国家/地区托管它,然后阻止它。当然这并不准确,但总归是可以的。一般来说,我不喜欢这样做;但也许出于某些法律原因,这是必须的。

答案4

我遇到过该网站声称禁止国家,

在我看来,最好的方法是使用 .htaccess 文件进行阻止

相关内容