[英]PHP redirect not working (based on user agent string)
我正在運行以下重定向腳本:
<?php
$badAgents = array('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0');
if(in_array($_SERVER['HTTP_USER_AGENT'],$badAgents)) {
require("1.php");
} else {
require("2.php");
}
?>
但是,每個訪問者都將被發送到“ 2.php”,無論其用戶代理如何。 例如,我進入Firefox,進入2.php,進入Internet Explorer,看到2.php。
請有人指導我我做錯了什么?
感謝您的時間
檢查我們的邏輯。
這是您正在使用的偽邏輯:
除非用戶使用完全正確的Firefox版本訪問您的頁面,否則您使用的代碼將不會使用1.php。
我還建議您按以下方式更改代碼:
if (stripos($_SERVER['HTTP_USER_AGENT'], 'firefox') === false) {
require '2.php';
} else {
require '1.php';
}
您的字符串有點長才能匹配。 最好只過濾一個短而顯式的字符串,例如Firefox 。
<?php
if(stripos($_SERVER['HTTP_USER_AGENT'], 'firefox') !== false)) {
require("1.php");
} else {
require("2.php");
}
?>
然后,您的更改將比“規則”匹配大。
第二個是像get_browser這樣的函數可以解析User代理,您可以得到更好的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.