2011-07-31 72 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

相關問題