Apache 在.htaccess中重写引擎问题

Apache 在.htaccess中重写引擎问题,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我已经把它放在我的htaccess中了 #Redirect all england visitor to this web page , england.php RewriteEngine On RewriteCond %{REMOTE_ADDR} ^222\.167\. [OR] RewriteCond %{REMOTE_ADDR} ^112\.111\. ........ RewriteRule ^(.*)$ http://www.xxx.com/england.php [R=302,L

我已经把它放在我的htaccess中了

#Redirect all england visitor to this web page , england.php
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^222\.167\. [OR]
RewriteCond %{REMOTE_ADDR} ^112\.111\. 
........
RewriteRule ^(.*)$ http://www.xxx.com/england.php  [R=302,L] 
而非英国游客将登陆index.php

然而,我发现,如果在地址栏中键入地址,英国游客可以访问该网站www.xxx.com/england.php。 如何使此页面仅对英格兰ip地址可用?
显然,你需要知道英国有哪些IP地址

您可以通过以下方式获得所需的数据。然后可以查找IP地址并确定其位置

我不知道将数据放入.htaccess是否是一个可行的解决方案

引自maxmind网站

由于地理定位数据库的规模很大,我们通常建议 在我们的一个API中使用我们的二进制格式,因为 针对速度和磁盘空间进行了优化。另一方面,如果你有 要求将数据导入SQL数据库,CSV格式为 推荐。我们列出了一些导入和查询的准则 使用SQL数据库存储数据


但是我想你可以试试看。

更好的方法是使用
mod_authz_host
和默认的“拒绝所有”,然后只允许你想要的IP范围进入。最后,添加一个ErrorPage,将被禁止的访问者重定向到索引页面


请参阅。

为什么需要这样的限制?如果我来自英国,但目前在法国或德国,仍然想访问
/english.php
——为什么要禁止我?