只允许美国用户访问网站
Allow only US users to visit site
只允许美国用户访问站点的最佳 .htaccess 配置是什么?
我似乎找不到涵盖所有 IPV4 和 IPV6 用户的明确答案。
您必须安装mod_geoip
在 Debian 上:
apt-get install libapache2-mod-geoip
edit /etc/apache2/mods-available/geoip.conf
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
</IfModule>
/etc/init.d/apache2 reload
然后您可以使用以下行限制除美国以外的访问者的访问权限:
SetEnvIf GEOIP_COUNTRY_CODE US AllowedCountry
Deny from all
Allow from env=AllowedCountry
您没有说明限制的原因,但一般来说,没有办法在地理上限制用户。考虑两个明显的反例,通过公司 VPN 连接的用户通过美国托管的代理服务器浏览,或者美国移动 phone 在国外漫游时被用来访问网络——更不用说像 Tor 这样的匿名网络了.
更糟糕的是,除非您明确禁止 Google 之类的搜索引擎访问,否则读者可以查看页面内容的缓存副本。
只允许美国用户访问站点的最佳 .htaccess 配置是什么?
我似乎找不到涵盖所有 IPV4 和 IPV6 用户的明确答案。
您必须安装mod_geoip
在 Debian 上:
apt-get install libapache2-mod-geoip
edit /etc/apache2/mods-available/geoip.conf
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
</IfModule>
/etc/init.d/apache2 reload
然后您可以使用以下行限制除美国以外的访问者的访问权限:
SetEnvIf GEOIP_COUNTRY_CODE US AllowedCountry
Deny from all
Allow from env=AllowedCountry
您没有说明限制的原因,但一般来说,没有办法在地理上限制用户。考虑两个明显的反例,通过公司 VPN 连接的用户通过美国托管的代理服务器浏览,或者美国移动 phone 在国外漫游时被用来访问网络——更不用说像 Tor 这样的匿名网络了.
更糟糕的是,除非您明确禁止 Google 之类的搜索引擎访问,否则读者可以查看页面内容的缓存副本。