Сайт не нескольких серверах?
В дополнение к отвечающим выше - подобный вид маршрутизации удобнее реализовывать на уровне DNS. Тогда просто для каждого запроса будет подсовываться ближайший сервер и все будет прозрачно для пользователя.
Делать геолокацию, затем отправлять 301 статус HTTP