0

私はこれに1週間取り組んでおり、.htaccessファイルで試してみましたが、基本的にFirefoxでは機能しませんでした...

ページが正しくリダイレ​​クトされていません Firefox は、サーバーがこのアドレスへのリクエストを決して完了しない方法でリダイレクトしていることを検出しました。この問題は、Cookie の受け入れを無効にするか拒否することによって発生することがあります。

そしてクロムでそのことわざ.....

この Web ページにはリダイレクト ループがあり ます https://www.website.com/row/index.phpの Web ページでリダイレクトが多すぎます。このサイトの Cookie を消去するか、サードパーティの Cookie を許可すると、問題が解決する場合があります。そうでない場合は、コンピューターの問題ではなく、サーバーの構成の問題である可能性があります。

Maxminds Web サイトの GeoIP PHP API から GeoIP.dat および geoip.inc ファイルをホスティングのディレクトリにアップロードし、index.php ファイルを次の php コード ブロックで編集しました。

<?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);
?>

これが含まれているので、.htaccessファイルと関係があるのではないかと思います....

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

他に何をすべきかわからないので、これで私の髪をすべて抜いてしまいました!アドバタイザーに感謝します!

よろしく-フィリップ

4

1 に答える 1

0

更新しました

このコードが「https://www.website.com/row/index.php」に含まれているとします。

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);
于 2012-04-10T12:47:08.250 に答える