Я хочу создать веб-сайт, который позволяет пользователям сокращать мои URL-адреса только с помощью надежных сокращателей URL-адресов (например, bit.ly, goo.gl, …). Как я могу узнать, какой сокращатель URL был использован для перенаправления посетителей на мой сайт?
Вы не можете надежно.
Вы можете посмотреть на реферера (см. Ответ @ MehrdadEP), чтобы определить, откуда находятся пользователи и в зависимости от средства сокращения, если они следовали по короткой ссылке, и, возможно, запретить доступ (пока они не перезагрузят страницу), но вы не можете остановить создание сервисов коротких ссылок. короткие ссылки для вашего сайта.
И часто вы не будете видеть короткий URL вообще в реферере, кроме страницы раньше. Я не знаю, когда это точно произойдет, но, похоже, это зависит от типа перенаправления, используемого сокращающим устройством (возможно, временное или постоянное перенаправление).
И рефери становится все более и более ненадежным, так как нынешние лучшие практики поощряют настройку политика реферера которые не позволяют браузеру передавать реферер на сайты, которые не имеют того же происхождения, что и ссылка.
использование HTTP_REFERER
заголовок, чтобы найти реферальный URL. php
пример:
<?php
//method one
$ref = getenv("HTTP_REFERER");
echo $ref;
//method two
print $_SERVER["HTTP_REFERER"];
?>