1

私はカナダの会社です。私はメインのウェブサイトですべての商品を US$ で表示していますが、このリダイレクトを使用すると、カナダからのトラフィックは、すべての商品の価格が CND$ である他のミラーリングされたウェブサイトにリダイレクトされます。

これは、Maxmind GeoIP Lite を使用して米国サイトのページの HEAD で使用しているスクリプトです。それは完全に機能します。

<script language="JavaScript" src="http://j.maxmind.com/app/country.js" type="text/javascript"></script>

<script language="JavaScript" type="text/javascript">// <![CDATA[
if(geoip_country_code() == "CA"){
    document.write("");
    window.location = 'http://www.myCanadaianWebsite.com';
}
// ]]></script>

唯一の問題または厄介なことは、私がカナダにいるため、米国のサイトを自分でチェックしてテストするのに苦労していることです. 米国のサイトを確認するたびに、米国の Web ページからスクリプトを削除する必要があります。次に、見終わったら貼り直します。

IP または場所に基づいてリダイレクトされない例外をスクリプトに追加する方法はありますか? 私はそれをグーグルで調べましたが、そのようなものに出くわしたことはありません。この問題の解決策を見つけたいです。ありがとう。

4

3 に答える 3

0

サーバー側のコードを使用してIPに応じてスクリプトを選択的に出力するか、CharlesProxyなどのツールを使用してhttp://j.maxmind.com/app/country.js「ThisistheUS」データがハードコードされている独自のスクリプトに置き換えることができます。

于 2012-11-29T13:37:27.540 に答える
0

PHPでは、$ _SERVER['REMOTE_ADDR']を使用してIPを取得できます。javascriptでリモートIPを取得するには、「 javascriptのみを使用してクライアントのIPアドレスを取得する方法」を参照してください。

代わりに、次の解決策をお勧めします。Cookieを設定または設定解除できるスクリプトをインストールします。ドキュメントについてはこちらをご覧ください:http: //www.markusnordhaus.de/2012/01/20/using-cookies-in-javascript-パート1/

于 2012-11-29T13:43:51.800 に答える
0

チェックをサーバー側に移すかもしれませんが、失敗すると自分自身に Cookie が与えられます (jQuery ベースの例)。

if(geoip_country_code() == "CA" && $.cookie('pretendimamerican') === null) { 
  //Redirect
}

次に、その Cookie を自分に与えるか、それを設定する秘密の URL を作成します。これにより、IP に関係なく使用でき、同僚に簡単に送信できます。明らかに、あなたの実装はセキュリティの問題ではなく、価格の提示の問題なので、人々がそれを偽造することについては心配していません (それらの人々は、あなたが今持っているものを簡単に無効にすることができるからです)。


関連するメモとして、テストがより高度になった場合、私は人々がプロキシを使用して GeoIP アプリケーションをテストするのを支援する会社を立ち上げました: https://wonderproxy.com/

于 2012-12-04T16:58:48.713 に答える