配置手機端和電腦端訪問不同頁面的通用方法(以thinkphp5爲例)

將以下代碼放在入口文件public/index.php目錄下面即可實現

//判斷是否是手機
function is_mobile()
{   

    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    $mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong",
        "airness","alcatel","amoi","android","applewebkit/525","applewebkit/532",
        "asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry",
        "blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine",
        "eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig",
        "haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod",
        "jbrowser","kddi","kgt","kwc","lenovo","lg","lg2","lg3","lg4","lg5","lg7","lg8",
        "lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp",
        "mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian",
        "nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic",
        "pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover",
        "sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp",
        "siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout",
        "tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar",
        "verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii",
        "windows ce","wireless","xda","xde","zte");
    $is_mobile = false;

    foreach ($mobile_agents as $device) {
        if (stristr($user_agent, $device)) {
            $is_mobile = true;
            break;
        }
    }

    return $is_mobile;

}

is_mobile();

if ( is_mobile() ) {
    Header("HTTP/1.1 301 Moved Permanently");
    define('BIND_MODULE','index');
    Header("Location: http://".$_SERVER["HTTP_HOST"].'/index/index/index');
}else{
    Header("HTTP/1.1 301 Moved Permanently");
    define('BIND_MODULE','admin');
    Header("Location: http://".$_SERVER["HTTP_HOST"].'/admin/index/index');
}

這裏因爲我在Apache裏面配置了省略模塊名稱,所以要加上define()這個函數。

其中BIND_MODULE的作用詳情請參見thinkphp官方文檔中的入口綁定部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章