Postaram się odpowiedzieć bardziej wyczerpująco od poprzedników. Otóż rozpoznać kraj odwiedzającego można w PHP przynajmniej na 3 sposoby:
1. Sprawdzać
$_SERVER["HTTP_ACCEPT_LANGUAGE"] - ale wtedy uzyskujemy język używany przez przeglądarkę klienta, zawodzi kiedy np. Polak ma zainstalowaną angielską wersję Windowsa i IE.
2. Sprawdzać IP w zewnętrznych serwisach geolokalizacji, np.
MaxMind GeoIP - ale wtedy za każdym razem musimy łączyć się z zewnętrznym serwerem, co wydłuża ładowanie strony i może generować błędy.
3. Przechowywać lokalną bazę adresów IP oraz krajów i porównywać z nią IP klienta - ale wtedy musimy mieć miejsce na bazę danych (czasem kilkaset MB), musimy pamiętać o jej aktualizacji i wziąć pod uwagę, że danego adresu może nie być w bazie. Natomiast to jest sposób o wiele szybszy od poprzedniego. Przykładowa implementacja w PHP to
IP2Country.
Jak już mamy kraj, to robimy:
if(...) header('Location: ...');