Так что я не уверен, если вы хотите сделать это с помощью JavaScript или PHP ... PHP будет более надежным (люди могут отключить JavaScript), но в конечном итоге, реферер может быть изменен пользователем, если они действительно стремится обойти любые меры, которые вы приняли, поэтому имейте это в виду при реализации этого.
Лучшим способом было бы просто иметь оператор if, проверяющий реферер, и, если он не является приемлемым реферером, просто перенаправить их.
<SCRIPT LANGUAGE=JAVASCRIPT TYPE="TEXT/JAVASCRIPT">
<!-- Hide script from old browsers
if (document.referrer != '[Only Allowed Referrer URL]')
{
window.location = "http://not.allowed.to.view.site";
}
//-- Stop hiding script -->
</SCRIPT>
или
<?php
if ($_SERVER["HTTP_REFERER"] != "[Only Allowed Referrer URL"])
{
header( 'Location: http://not.allowed.to.view.site' ) ;
}
?>
Я не полностью протестировал приведенный выше код, но вам нужно что-то подобное. По сути, если это не из «разрешенного» реферера, перенаправьте на страницу с ошибкой.
Опять же, использование URL-адреса реферера для запрета или предоставления доступа к странице не так надежно, но если вы хотите это сделать, вам нужно что-то подобное. Также будьте осторожны с такими вещами, как URL может иногда иметь "www." в начале иногда не может. Могут быть варианты URL, которые вы захотите учесть в своем утверждении if.