2016-10-31 2 views
1

У меня есть основной домен (example.com) с установленным WordPress. Простой домен перенаправляется от example.com до example-usa.com был установлен на месте с панели управления хостингом.Показать сообщение, если перенаправление URL

Мой клиент хотел бы, чтобы сообщение приветственного приветствия было доступно любому, кто пришел с example-usa.com.

Для достижения этой цели я выбрал следующий PHP:

<?php 
    $host = $_SERVER['HTTP_HOST']; 
    if ($host == "example-usa.com" or $host == "www.example-usa.com") { 
     echo '<header><h1>USA Message</h1>'; 
    } 
    else { 
     echo '<header><h1>Normal welcome message</h1>'; 
    } 
?> 

К сожалению, когда пользователь приходит на сайт, домен США исчезнет из панели браузера URL и заменяется на основной домен. Это означает, что мой PHP не пинает, как следует.

Есть ли другой способ добиться этого? Я бы предпочел не использовать плагин или службу определения местоположения.

Важно отметить, что из регистратора доменов клиентов (123-reg) есть две опции перенаправления. В настоящее время я выбрал вариант 301, так как это постоянное перенаправление. Однако я могу выбрать направление 302, которое представит iFrame.

+0

попробуйте 'если (StrPos ($ хозяин,«пример-США»))' – devpro

+0

Как вы перенаправлять? A (возможно, немного уродливое ...) решение заключалось бы в том, чтобы добавить параметр запроса и проверить его. – jeroen

+0

Я тестировал с 'if (strpos ($ host," example-usa "))', но это не работает. Я обновил свой вопрос с помощью типов перенаправлений, доступных из регистратора доменов клиентов. – Squideyes

ответ

0

Я не думаю, что вы сможете сделать это с помощью перенаправления на своем хостинге. Лучше всего было бы обработать переадресацию в вашем коде и установить файл cookie, прежде чем выполнять перенаправление. Затем на стороне назначения вы можете проверить этот файл cookie, прежде чем показывать сообщение.

0

Попробуйте это:

<?php  

    $host = parse_url(get_home_url(), PHP_URL_HOST); // will return 'example-usa.com' 

    if ($host == "example-usa.com" or $host == "www.example-usa.com") { 
     echo '<header><h1>USA Message</h1>'; 
    } 
    else { 
     echo '<header><h1>Normal welcome message</h1>'; 
    } 
    exit; 
?> 
+0

Я дал это выстрел, и это не работает для меня. – Squideyes

+0

Извините, я добавил неправильный, обновил его, отметьте его –

+0

Все еще не работает. Вся страница пуста :( – Squideyes

0

HTTP_HOST содержит текущий домен, вы можете использовать HTTP_REFERER проверить предыдущий домен. Это будет соответствовать вашему домену «usa» после перенаправления.

0

Попробуйте это. Поскольку вы перенаправляют пользователя вам нужно будет смотреть на ссылающейся URL^

if (strpos($_SERVER["HTTP_REFERER"], 'example-usa.com') !== false) { 
     echo 'Welcome to example.com'; 
    } 
+0

Это не работает для меня. – Squideyes

+0

Затем вы можете сделать этот трюк: перенаправить пользователя на http://example-usa.com/?redirected_from=example.com, а затем проверить в php code form 'redirected_from' param, если true, напечатать приветственное сообщение. –

Смежные вопросы