2012-04-10 15 views
0

によると、私は今、一週間のためにこれに取り組んできましたし、私の.htaccessファイルでそれを試してみましたが、でもこれはFirefoxで基本的に言って...MaxmindsのGeoIP PHPのリダイレクト国コード

を動作しませんでしたページが正しくリダイレ​​クトされていない サーバーがこのアドレスの要求をリダイレクトしていることをFirefoxが検出した場合、 は完了しません。 この問題は、accecp cookieを無効にするか拒否することによって発生することがあります。

とクロムでその言って.....

このウェブページは https://www.website.com/row/index.phpでWebページがあまりにも多くの リダイレクトをもたらしたリダイレクトループを持っています。このサイトのCookieを消去するか、サードパーティの Cookieを許可すると問題が解決する可能性があります。そうでない場合は、可能であればサーバ の設定に問題があり、コンピュータに問題はありません。

私はその後、私は次のPHPコードブロックと私のindex.phpファイルを編集した....

MaxmindsのウェブサイトからのGeoIP PHPのAPIからの私のホスティング上のディレクトリにGeoIP.datとgeoip.incファイルをアップロード
<?php 
require_once("geoIP/geoip.inc"); 
$gi = geoip_open('geoIP/GeoIP.dat', GEOIP_MEMORY_CACHE); 
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']); 
// prints the country code your visitor is in 
$my_countriesrow = array('AD','AE','AF','AG','AI'.....ect); 
$my_countrieseuro = array('AN','AT','BA','BE','BG','BY','CH'.....ect); 
/* $my_country = array('GB','UK'); */ 
if (!in_array(strtolower($country), $my_countriesrow)) { 
header('Location: https://www.website.com/row/index.php'); 
exit(); 
} 
else if(!in_array(strtolower($country), $my_countrieseuro)){ 
header('Location: https://www.website.com/euro/index.php'); 
exit(); 
} 
else { 
header('Location: https://www.website.com/index.php'); 
exit(); 
} 
// the end 
geoip_close($gi); 
?> 

私は

# Make all requests have www in them 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^website\.com 
RewriteRule ^(.*)$ https://www.website.com$1 [R=permanent,L] 

はすでに上のすべての私の髪を引っ張ってきた他に何をすべきかを知らない....それはそれでこれを含んと、それは私の.htaccessファイルとは何かを持っているかもしれないと思いますこの!多くのアドヴァイスのおかげで!

よろしく私はこれを訪問していた場合、このコードは、 "https://www.website.com/row/index.php"

に含まれていると仮定すると、

を更新し -Phillip

+0

は、ページこれは上のリダイレクトされます。このような

何かがループを防ぐかもしれませんか?リダイレクト先のページにはありませんか? – HarryBeasant

+0

メインのウェブサイトのindex.phpにあるハリー! –

答えて

0

BEからのページ、最初のifステートメントがトリガーされ、この同じページに何度も繰り返し表示されます。

更新:

require_once("geoIP/geoip.inc"); 
$gi = geoip_open('geoIP/GeoIP.dat', GEOIP_MEMORY_CACHE); 
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']); 
$my_countriesrow = array('AD','AE','AF','AG','AI'); 
$my_countrieseuro = array('AN','AT','BA','BE','BG','BY','CH'); 

/* if you got redirected, do not redirect again */ 
if (!isset($_GET['redirected'])) { 
    if (!in_array(strtolower($country), $my_countriesrow)) header('Location: https://www.website.com/row/index.php?redirected'); 
    else if(!in_array(strtolower($country), $my_countrieseuro)) header('Location: https://www.website.com/euro/index.php?redirected'); 
    else header('Location: https://www.website.com/index.php?redirected'); 
} 

geoip_close($gi); 
+0

うん、それは私が何を考えていたのですか、それゆえに私はなぜそれがあったページを尋ねていたのですか?ルーキーミスです! – HarryBeasant

+0

yep同じコードブロックがすべてのサイトのすべてのindex.phpページにありますが、まだリダイレクトされていない –

+0

Phillip、私の答えをもう一度読んで、説明しました:すべてのindex.phpページにある場合は動作しません。 –

関連する問題