Нужно найти исходный URL запроса в переполнении стека

Я хочу определить сайт, с которого был вызван запрос на конкретный сайт. Например. У меня есть сайт www.ex.com. Теперь эта ссылка была на трех сайтах www.a.com, www.b.com и www.c.com. Предположим, один пользователь щелкнул ссылку с www.a.com, чтобы перейти на www.ex.com. Теперь я хочу определить, что запрос поступил с сайта www.a.com, и тогда страница в www.ex.com будет отображаться соответствующим образом. Аналогичным образом, если пользователь нажал на ссылку www.ex.com с сайта www.b.com, страница отобразится соответствующим образом.

Итак, как я могу определить источник запроса, то есть с какого веб-сайта www.ex.com был вызван? Хорошо, если вы объясните это с помощью кода на PHP.

Спасибо

1

Решение

Посмотрите Вот для HTTP_HOST и HTTP_REFERER.

Поскольку обе глобальные переменные заполняются из заголовков HTTP, посмотрите также Вот для хоста и реферера.

Вот как вы их используете:

$host = $_SERVER['HTTP_HOST'];
$referer = $_SERVER['HTTP_REFERER'];

Первый — это оригинальное имя хоста (например, «www.a.com») со ссылкой на вашу страницу. 2-й является полным URL (как https://www.a.com/some/path/to/some.html).

Затем, основываясь на некоторой условной логике, вы можете вернуть своим пользователям соответствующий HTML.

2

Другие решения

Есть два разных сайта.

Скажем, от a.com, вы нажимаете на ex.com

Итак, для ссылки в a.com добавьте некоторый параметр:

<a href="ex.com/somepage.php?from=a.com">Click Here</a>

Теперь ваш from параметр будет

1) a.com
2) b.com
3) c.com

Если ничего из вышеперечисленного, то его нажали с самого ex.com.

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

1

Вы можете использовать это

$_SERVER['HTTP_REFERER']

для реферальной ссылки

1
По вопросам рекламы [email protected]