2012-09-23 4 views
0

나는 국제 시장에 서비스를 제공하는 웹 사이트를 가지고 있으며 사용자의 IP를 기반으로 3 가지 다른 도메인 이름 중 하나를 사용해야합니다. 여기htaccess를 사용하여 사용자 IP 주소를 기반으로 도메인 이름을 변경하십시오.

이 사용 사례입니다 : 영국에서

  • 사용자 IP, 도메인 이름 www.example.co.uk 호주에서
  • 사용자 IP로 표시, 도메인 이름은 www.example.co으로 나타납니다 .AU
  • 다른 모든 IP를
  • 는 도메인 이름은 제네릭을 사용할 수 있도록이 질문에 www.example.com

로, 나는 각 나라에서 사용하는 정확한 IP 주소를 알 필요가 없습니다 나타납니다 대답의 IP - 당신이하지 않는 한 개미를 추가로 이동하여 주어진 국가의 실제 IP를 기반으로 생성하십시오.

감사합니다.

+0

일부 스크립트 언어에 필요하고 또한 visior의 원격 IP를 얻을 리디렉션을합니다. – cc4re

답변

0

인덱스 파일의 시작 부분에 PHP 코드가있는 것이 더 쉽다고 생각합니다. $_SERVER['REMOTE_ADDR']

1

당신은 install mod_geoip 필요하고 당신은 mod_rewrite를 사용하여 사용할 수 있습니다

# stuff for initializing mod_geoip 
GeoIPEnable On 
GeoIPDBFile /path/to/GeoIP.dat 

RewriteEngine on 

# rules per country 
# User IP from the UK, domain name appears as www.example.co.uk 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^GB$ 
RewriteCond %{HTTP_HOST} !example.co.uk [NC] 
RewriteRule ^/?(.*)$ http://www.example.co.uk/$1 [R,L] 

# User IP from Australia, domain name appears as www.example.co.au 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AU$ 
RewriteCond %{HTTP_HOST} !example.co.au [NC] 
RewriteRule ^/?(.*)$ http://www.example.co.au/$1 [R,L] 

# All other IPs, domain name appears as www.example.com 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^GB$ 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^AU$ 
RewriteCond %{HTTP_HOST} !example.com [NC] 
RewriteRule ^/?(.*)$ http://www.example.com/$1 [R,L] 
관련 문제