我需要执行PHP脚本,只是用户从另一个以特定名称开头的页面重定向。例如: domain.com/abc XXXXXX
我试过这个,但它似乎不起作用:
if (preg_match("/abc", $_SERVER['HTTP_REFERER'])) {
}
我错过了什么?
答案 0 :(得分:1)
我建议将parse_url与网址查询表一起使用。
您可以执行以下操作:
$allowedReferals = [
'www.google.com/maps',
'www.google.co.uk/maps',
'www.google.in/maps',
];
$referer = !isset($_SERVER['HTTP_REFERER']) ? null : parse_url($_SERVER['HTTP_REFERER']);
if (!is_null($referer)) {
$host = !isset($referer['host']) ? null : $referer['host'];
$path = !isset($referer['path']) ? null : $referer['path'];
$referingDomain = $host . $path;
if (in_array($referingDomain, $allowedReferals)) {
// The referer matches one of the allowed referers in the lookup table
// Do something...
}
if (preg_match('/^maps/', $path)) {
// The referer's path begins with maps
// Do something...
}
}
答案 1 :(得分:0)
修复正则表达式模式:
if (preg_match("/^domain\.com\/abc/", $_SERVER['HTTP_REFERER'])) {
}
使用/不使用www检查的另一个版本:
if (preg_match("/[w{3}\.]?domain\.com\/abc/",'www.domain.com/abcXXXXXX')) {
}