可以使用正则表达式来判断问号后边是否有6位字符串,并且有一个点'.1'的特征。以下是修改后的代码:

$domain = $_SERVER['HTTP_HOST'];

if($domain === 'jk.fh.whsc.gay' && !strpos($_SERVER['REQUEST_URI'], '?')){
    echo '未授权不允许访问!';
    exit;
}

if(strpos($_SERVER['REQUEST_URI'], '?') !== false) {
    $query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
    if(preg_match('/^[a-zA-Z0-9]{6}$/', $query) && strpos($query, '.1') !== false) {
        // 网站代码...
    } else {
        echo '未授权不允许访问!';
        exit;
    }
} else {
    echo '未授权不允许访问!';
    exit;
}

这段代码首先判断域名是否为'jk.fh.whsc.gay',如果不是则输出'未授权不允许访问!'并终止脚本。

然后判断请求URI中是否包含问号,如果不包含则输出'未授权不允许访问!'并终止脚本。

如果包含问号,则使用parse_url()函数解析出查询字符串,并使用正则表达式/^[a-zA-Z0-9]{6}$/判断查询字符串是否为6位字母和数字的组合。

同时使用strpos()函数判断查询字符串中是否包含'.1',如果满足这两个条件,则执行网站代码。如果不满足条件,则输出'未授权不允许访问!'并终止脚本。

PHP 域名访问限制:如何使用正则表达式判断查询字符串

原文地址: http://www.cveoy.top/t/topic/bGrX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录