1

私は現在、3つの異なるドメインを持つ3つのストアをオンラインで持っており、centosで実行されているApacheとワニスでmagentoを実行しています

1 つは英国向け、もう 1 つはアイルランド向け、もう 1 つは米国向けです。

問題は(例)アメリカのユーザーがイギリスのストアにアクセスした場合、ページ上の正しいストアに移動するようユーザーに通知してほしい(自動的にリダイレクトさせたくない)

maxmind データベースで php-pecl-geoip を実行してこれを機能させることができましたが、私の Web サイトのユーザーが増えたため、ワニスの使用を開始する必要がありました。

この機能をワニスで実装するにはどうすればよいでしょうか?ユーザーの出身国がわかるため、関連する Web サイトを表示するようにユーザーにメッセージを表示できますか?

4

2 に答える 2

0

Magento で JSON アクション結果を使用して Crontroller を作成できます。これらを JavaScript でチェックし、結果を出力できます。

コントローラーを Varnish の withlist に追加することを忘れないでください。

于 2013-10-21T08:21:12.207 に答える
0

Gunah、ここでポイントを逃したと思います。Varnish を Apache の前に配置すると、PHP が認識するクライアント IP は常に Varnish の IP (同じサーバーにある場合は 127.0.0.1) になります。

molleman, この場合、Varnish によって設定された X-Forwarded-For ヘッダーを調べて、実際のクライアント IP を取得する必要があります。Varnish が default.vcl でどのように設定されているかを確認できます。

if (req.http.x-forwarded-for) {
    set req.http.X-Forwarded-For =
    req.http.X-Forwarded-For + ", " + client.ip;
} else {
    set req.http.X-Forwarded-For = client.ip;
}

Web サーバーがロード バランサーの背後にある場合は、さらに作業が必要です。解決策については、こちらを参照してください: Varnish は X-Forwarded-for からパブリック IP を削除します

于 2013-10-26T15:45:50.810 に答える