Доменные (страновые) баннеры в PHP системе - PullRequest
0 голосов
/ 15 августа 2010

На нашем сервере установлена ​​система клонирования Youtube на основе PHP.

Эта же система используется в нескольких странах. Допустим, у меня есть 3 домена, которые все указывают на одну и ту же систему:
www.site.hr
www.site.ba
www.site.rs

Все они перенаправляют на какой-то сайт с именем www.site.tv

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

Каков наилучший способ сделать это, и возможно ли это вообще? Мои идеи были:
1) искать IP каждого посетителя и проверять, из какой он страны или
2) создать 3 субдомена hr.site.tv, ba.site.tv и rs.site.tv, которые все
отдельные системы, но в одной базе данных ...

Я знаю, что первая идея ошибочна, а вторая правдоподобна. У тебя есть идея получше?

Ответы [ 3 ]

1 голос
/ 15 августа 2010

Если вам не нужна надежная система, а только добавлена ​​возможность устанавливать баннеры для некоторых (большинства) пользователей, вы можете использовать это простое решение:

www.site.hr redirects to www.site.tv?lang=hr
www.site.ba redirects to www.site.tv?lang=ba
www.site.rs redirects to www.site.tv?lang=rs

затем сохраните параметр lang в $_SESSION и используйте его для отображения связанных баннеров, когда люди продолжают посещать внутренние страницы.

вам потребуется поведение по умолчанию для случая, когда этот параметр не существует в сеансе (например, для роботов).

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

1 голос
/ 15 августа 2010

Поиск IP-адреса и GeoIP не являются надежными. Обнюхивание $ _SERVER ['HTTP_ACCEPT_LANGUAGE'] не очень поможет, потому что они могут возвращать одни и те же языки или не возвращать вообще, если пользователь предпочитает английский, например.

Рекомендуется использовать субдомены или разные пути URL в пределах одного домена, если это ваши собственные баннеры. Сторонние поставщики рекламы могут иметь свои собственные алгоритмы таргетинга на рынок.

0 голосов
/ 15 февраля 2018

ваша идея 1), вероятно, будет работать в большинстве случаев, но иногда пользователи получают неправильный вариант в зависимости от того, как они подключаются к Интернету, и создают проблемы с такими вещами, как поисковые системы, которые вы можете проиндексировать на всех трех сайтах.

2) Проблематично из-за части «все отдельные системы». Поддержание трех отдельных кодовых баз для выполнения, по сути, одной и той же вещи - пустая трата усилий, и будет сложно внести изменения в структуру базы данных, если она будет подходящей для всех из них.

Лучший вариант - иметь только одну систему, но подключить ее ко всем трем доменам и поместить в нее некоторую логику, чтобы отобразить соответствующий баннер для каждой страны. Вы можете настроить свой веб-сервер так, чтобы три доменных имени обрабатывались как псевдонимы и отправляли запросы от всех них в одно и то же приложение PHP. В PHP вы можете получить имя сайта, запрошенное клиентом, как $_SERVER['SERVER_NAME']. Возможно, вы используете фреймворк или библиотеку PHP, которая предоставляет другой способ размещения контента, специфичного для доменного имени, на вашем сайте.

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

...