2011-07-31 44 views
0

我在我的htaccess把这个RewriteEngine叙述问题

#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地址? thx

+0

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

回答

0

显然你需要知道哪些IP地址在英格兰。

您可以从http://www.maxmind.com/app/geolitecountry之类的东西获取所需的数据。然后,您可以查找IP地址并确定它的位置。

我不知道是否将数据放在.htaccess中将是一个可行的解决方案。从现场的MaxMind

报价...

由于大尺寸的地理位置数据库,我们一般建议使用 我们的二进制格式与我们的API中的一个,因为它们是高度 优化速度和磁盘空间。另一方面,如果您有将数据导入到SQL数据库的要求 ,则建议使用CSV格式 。我们已经列出了一些关于用SQL数据库导入和查询数据的指导原则。

但我猜你可以尝试一下,看看..

0

一个更好的办法是使用mod_authz_host,默认情况下“拒绝所有”,那么只允许你想让在IP范围。最后,添加一个将禁止访问者重定向到索引页面的错误页面。

参见the Apache manual

相关问题