PHP检查推荐网址是否为主页

bik*_*y77 2 php http-referer

我正在试图弄清楚如何检查我的内页之一的引荐网址是否是主页.如果主页总是www.mysite.com/index.php,这很容易,但当它只是www.mysite.com时会发生什么?

我知道我可以做到

$url = $_SERVER['HTTP_REFERER'];
$pos = strrpos($url, "/");
$page = substr($url, $pos+1, (strlen($url)-$pos+1));
if (substr_count($url, 'index')) echo 'from index ';
Run Code Online (Sandbox Code Playgroud)

但我的$ url变量中没有index.php.

Dav*_*dom 5

parse_url() 可以帮到你.

// An array of paths that we consider to be the home page
$homePagePaths = array (
  '/index.php',
  '/'
);

$parts = parse_url($_SERVER['HTTP_REFERER']);
if (empty($parts['path']) || in_array($parts['path'], $homePagePaths)) echo 'from index';
Run Code Online (Sandbox Code Playgroud)

注意:任何重要的事情都不应该依赖.的Referer:报头可以从请求会丢失,并且可以容易地被欺骗.所有主流浏览器都应该按照您的预期进行操作,但黑客和网络浏览器可能不会.