我试图弄清楚如何检查我的内部页面之一的引荐网址是否是主页。如果首页始终是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 ';
但是我的$ url变量中没有index.php。
最佳答案
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';
N.B.重要的事情都不应依赖于此。
Referer:
标头可能会从请求中丢失,并且很容易被欺骗。所有主要的浏览器都应该执行您期望的操作,但黑客和网络爬虫可能不会这样做。