检测特定网页

时间:2015-12-02 16:33:51

标签: php

我需要执行PHP脚本,只是用户从另一个以特定名称开头的页面重定向。例如: domain.com/abc XXXXXX

我试过这个,但它似乎不起作用:

if (preg_match("/abc", $_SERVER['HTTP_REFERER'])) {

}

我错过了什么?

2 个答案:

答案 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')) {

}