В общем суть такая.
Нужно определить если пользователь пришел из какой-то поисковой системы, то показывать ему сайт, если же нет то показывать ошибку.
Написал набросок. но есть проблема, если перейти с первого раза на сайт то не сразу срабатывает, http_referer будто не сразу считывается, а после перезагрузки.
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
if($_COOKIE['alow']!="1"){ //Если нет куки то делает проверку, иначу нет смысла
$ref = $_SERVER['HTTP_REFERER'];
$findme = array("google", "yandex", "mail", "rambler");
foreach($findme as $find){
$pos = strpos($ref, $find);
$res=0;
if ($pos === false) {
$res = 0;//строка не найдена
}
else
{
$res = 1;//строка найдена
setcookie("alow","1",time()+9999 ,'/' );
echo $res;
break;
}
}
}
echo "RES ".$_SERVER['HTTP_REFERER'];
if($_COOKIE['alow']=="1"||$res==1){
define('WP_USE_THEMES', true); //грузим WP
require( dirname( __FILE__ ) . '/wp-blog-header.php' ); //грузим WP
}
else
{
http_response_code(404);
}