首页 > 解决方案 > 如果用户代理使用 PHP 等于变量,则标头重定向

问题描述

如果用户代理等于变量,我有一个脚本必须重定向到 403 页面,但如果不是 - 必须显示正常页面。而不是这个脚本只显示空白页,仅此而已。请帮助我解决我的问题或我做错了什么。

这是脚本:

<?php

 //-- Get user agent
 //-- Thanks @creditosrapidos10min for hint about strtolower() 
 $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);

 //-- BadBot variable
 $Baiduspider = stripos($useragent, "Baiduspider");
 $DotBot = stripos($useragent, "DotBot");

 //-- BadBot constant
 $BADBOT = ($Baiduspider||$DotBot);

if ($agent == $BADBOT){

    header("Location: ohno/403.php");
    exit;


} else { ?>

 Display home page

 <?php }?>

标签: phpredirectheaderuser-agent

解决方案


尝试使用 $HTTP_SERVER_VARS 而不是 $_SERVER,以免全局变量出现问题。

如果没有,请尝试使用 strtolower:

<?php

 //-- Get user agent
 $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);

 //-- BadBot variable
 $Baiduspider = stripos($useragent, "baiduspider");
 $DotBot = stripos($useragent, "dotbot");

 //-- BadBot constant
 $BADBOT = ($Baiduspider||$DotBot);

if ($agent == $BADBOT){

    header("Location: ohno/403.php");
    exit;


} else { ?>

 Display home page

 <?php }?>

推荐阅读