我有一个网站,但不想让整个国家的人都看到。该网站在 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 文件进行阻止