回答:
GeoIPおよびストアビューは、この問題の解決に役立ちます。
GeoIP GeoIPデータベースにMaxMind などのプロバイダーを使用できます(または、ヘッダーに国を追加するWebサーバーモジュールとしてロードします)。
IPアドレスに基づいて、顧客を適切なストアビューにリダイレクトできます(ストアビュースイッチャーによって生成されたリンクを確認します。
ストアビュー
ロシア語はストアビューである必要があります。ストアビュースイッチャーを確認して、顧客に使用する必要があるリンクを確認します。
リダイレクト後、Cookieを設定して顧客をストアビューに関連付けることができます。
最新のMaxMindデータファイルをダウンロードし、定期的に更新するMagento GeoIP拡張機能(私が作成)があります。
controller_front_init_before
イベントに参加することをお勧めします。次のコードを使用して、訪問者の国のISO 3166-1コードを取得し、該当する場合は、コレスポンデントストアビューにリダイレクトします。
$geoIP = Mage::getSingleton('geoip/country');
$code = $geoIP->getCountry();
/*
* Check if store view for this country/language exists and it is not a current store view.
* If so do a redirect.
* You can also take a language from user agent into consideration.
*/
この拡張機能の使用に関する詳細な記事はこちらにあります。
プログラミングできる場合は、http: //www.thefutureoftheweb.com/blog/use-accept-language-headerをご覧ください。index.php
言語に適したストアビューのロードで切り替えを行うことができます。
もう1つ注目すべきは、GEO IPです。
数行のコードにより、ユーザーの国コードが提供され、それに基づいて切り替えることができます。
ただし、最初のページヒットがキャッシュされるときにEnterprise Editionとフルページキャッシュで同じストアを使用している場合、リダイレクトベースのコードを使用すると問題が発生することに注意してください。。
Vary: Accept-Language
ブラウザーとFPCの両方のヘッダーでどのようにするかを理解する必要があります。
別のオプションは、PHPのauto_prepend構成を使用することです。これにより、PHPで処理されるすべてのスクリプトがスクリプトを実行する前に、実際に要求されたスクリプトが実行さ、.htaccessの後にスクリプトを実行します(使用している場合)。
このアプローチと他のいくつかの提案(例:地理的位置データにMaxMindを使用し、特定の地域のビューを保存する)を組み合わせると、かなりクリーンなアプローチになる可能性があります。
バージョン1.4以上のMagentoを実行している場合、$ _ SERVER ['MAGE_RUN_CODE']値を設定することでデフォルトのストアコードを構成できます。
.htaccessファイルまたはapacheの構成のいずれかで、次を追加します。
php_value auto_prepend_file /var/www/mystore/path/to/script.php
あなたにscript.php
必要なすべてのビジネスロジックを実行し、適切な店舗コードを設定します。
<?php
if (get_ip_location($_SERVER['REMOTE_ADDR']) == 'uk') {
$_SERVER['MAGE_RUN_CODE'] = 'store_code_uk';
} else {
$_SERVER['MAGE_RUN_CODE'] = 'store_code_us';
}
注意すべきことの1つは、これは要求されたすべての PHPファイルに適用されるため、それを覚えておく必要があるということです。