如何允许来自多个站点的http referer

问题描述 投票:0回答:1

我想知道如何允许来自多个站点的http引用。

例如

<?php
$domain='example.net';
$referrer = $_SERVER['HTTP_REFERER'];
if (@preg_match("/example.net/",$referrer)) {
} else {
header('Location: http://www.example.net/404.php');
};
?>

如果我从example.net打开链接,此代码有效,但我想允许example1.net和example2.net访问链接。

我该怎么做呢?如果有人能帮助我,我将非常感激。

php http referrer
1个回答
1
投票

使用正则表达式运算符或 - |(管道)

<?php
$domains = Array(
    'example.net',      
    'example2.net'
);
$referrer = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST); // Gets the domain name from referer
if (!preg_match("/" . implode('|', $domains) . "/", $referrer)) {
    header('Location: http://www.example.net/404.php');
    exit(0); //force exit script after header redirect to ensure no further code is executed.
};

// Normal code execution here...
?>
© www.soinside.com 2019 - 2024. All rights reserved.