Перенаправление на другую версию сайта по стране происхождения

У меня есть два сайта, один для США, который находится в корне домена .com, и у меня есть копия сайта в каталоге /uk, предназначенная для клиентов из Великобритании.

Вот код, который я настроил, который отлично работает, когда я использую тестовую пустую php-страницу, которую я использую с классом геоплагина.

<?php ob_start();?>
<?php require_once('geoplugin.class.php');$geoplugin = new geoPlugin(); ?>
<?php $country = $geoplugin->locate();?>

        <?php
        $countryName= $geoplugin->countryName ;
        $ukCountry = 'http://www.mywebsite.com/uk/';
        $mainSite = 'http://www.mywebsite.com/';


//UK 
         if ($countryName =="United Kingdom")
          {

                    header('Location: '.$ukCountry);
          }else{

                    header('Location: '.$mainSite);

?>

Я подключаюсь к указанной выше странице с помощью инструкции включения и отлично работает в качестве теста.

Но я хочу, чтобы посетитель зашел на основной сайт, затем проверил страну происхождения и, если это Великобритания, перешел на британскую версию.

Я хочу установить это на сайт Wordpress, но когда я помещаю оператор «включить», я получаю сообщение об ошибке

Предупреждение. Невозможно изменить информацию заголовка — заголовки уже отправлены

Я много читал о буферизации вывода, и я пробовал несколько вещей, чтобы заставить его работать, но я не могу заставить его правильно пересылать его.

Я знаю, что есть вероятность бесконечного цикла с приведенным выше кодом, но я удалю оператор else, если это остановит.

По сути, я хочу, чтобы сайт проверял, что страна - Великобритания, если так, то вперед на сайт Великобритании, а если нет, просто загружайте страницу нормально.

Любые предложения приветствуются.


person JohnnyQ    schedule 31.12.2014    source источник
comment
Вы пробовали встроенную функцию wp_redirect? codex.wordpress.org/Function_Reference/wp_redirect В вашем случае прочтите stackoverflow.com/questions/ 8028957/   -  person FrEaKmAn    schedule 31.12.2014
comment
Другим решением является использование правил перезаписи apache и модуля geoIP.   -  person ceadreak    schedule 31.12.2014
comment
Где вы включаете его на своем сайте WordPress?   -  person jeroen    schedule 31.12.2014
comment
взгляните на stackoverflow.com/questions/8028957/   -  person Utkarsh Dixit    schedule 31.12.2014
comment
Пожалуйста, опубликуйте полную ошибку   -  person Utkarsh Dixit    schedule 31.12.2014
comment
Да, я просмотрел вопросы stackoverflow, и обходной путь javascript действительно работает, но, похоже, он делает сайт очень медленным, и я надеялся на лучшее решение. правила apache и модуль geoIP выглядят хорошо, но я не уверен, смогу ли я установить их на своих серверах.   -  person JohnnyQ    schedule 31.12.2014


Ответы (1)


Прежде всего, вы можете использовать Maxmind для геотаргетинга. Затем создайте plug_in в wordpress и используйте систему HOOK в рабочей прессе, чтобы закрепить свой код с помощью init Hook.

person SMSM    schedule 31.12.2014
comment
Я уже использую плагин, который отлично работает, это реализация для wordpress, которая вызывает ошибку. - person JohnnyQ; 31.12.2014