답변:
GeoIP 및 스토어 뷰는이 문제를 해결하는 데 도움이됩니다.
GeoIP GeoIP 데이터베이스에 MaxMind 와 같은 공급자를 사용 하거나 헤더에 국가를 추가하는 웹 서버 모듈로로드 할 수 있습니다.
IP 주소를 기반으로 고객을 적절한 상점보기로 재 지정할 수 있습니다 (상점보기 스위처가 생성 한 링크를 확인하십시오).
매장 뷰
러시아어는 상점보기 여야합니다. 상점보기 스위처를 확인하여 고객에게 필요한 링크가 무엇인지 확인하십시오.
경로 재 지정 후 고객을 상점보기와 연관 시키도록 쿠키를 설정할 수 있습니다.
최신 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
상점보기로드에서 언어에 적합한 전환을 수행 할 수 있습니다.
살펴볼 또 다른 것은 GEO IP입니다.
몇 줄의 코드는 사용자 국가 코드를 제공하며이를 기반으로 전환 할 수 있습니다.
그러나 Enterprise Edition 및 Full Page Cache와 동일한 상점을 첫 페이지 적중이 캐시되는 경우 리디렉션 기반 코드를 사용하면 문제가 발생 합니다.
Vary: Accept-Language
브라우저와 FPC의 헤더에있는 방법을 알아 내야합니다 .
또 다른 옵션은 PHP의 auto_prepend 구성 을 사용하는 것 입니다. 이로 인해 실제 요청 된 스크립트가 실행 되기 전에 .htaccess 이후 ( PHP를 사용하는 경우)에 의해 PHP가 처리하는 모든 스크립트가 스크립트를 실행하게됩니다 .
이 접근 방식은 다른 제안 (예 : 지리적 위치 데이터 및 특정 지역의 매장보기에 MaxMind 사용)과 결합하여 다소 깔끔한 접근 방식이 될 수 있습니다.
Magento> = 1.4 버전을 실행중인 경우 $ _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';
}
한 가지 유의할 사항은 요청 된 모든 PHP 파일에 적용 되므로이를 명심해야합니다.