开启手机版二级域名m.xxxx.com 方法 绑定二级域名

前言:周末有时间看了下最新的2.2的程序;把以前的代码重新规范化整理了下;
      修改前 先把二级域名解析到相应的站点上;在m_host函数内 把二级域名手动添加上,不添加则视为不启用二级域名和移动端的绑定   如果懒得改 可以直接下载修改文件 进行覆盖;覆盖前 记得备份,备份比啥都强!
 
(1)functions.inc.php 下新增函数
    1.base_parse_url;m_host;web_host;moblie_sikp 
   
    3.is_mobile上新增函数 moblie_sikp 
    4.is_mobile 内新增判断语句
    5. 移动端伪静态事例 
        /m/question/(:any)===/mq/(:any)
        /m/topic/(:any)===/mt/(:any)
        /m/question/(:any)===/mq/(:any)
        /m/people/(:any)===/mp/(:any) 
(2) 修改 CORE/URI.PHP 函数 set_rewrite 
#=======================内容如下===================== 

5. 修改 CORE/URI.PHP 函数 set_rewrite 
        //yang修复移动端使用 新的二级域名时 URL 强制带 /?/m 问题
    
        if(m_host()){
            if(base_parse_url()['sld'] == m_host())
            {
                if($this->default_vars['app_dir']!='m')
                {
                    $this->default_vars['app_dir'] ='m';    
                }       
                
            }
        }
        //搜索下面这句 在它上面加上
        $__app_dir = $this->default_vars['app_dir'];    // 应用目录

 
 
/**
* 解析主域信息
*
* @return array
*/
function base_parse_url()
{
$clean_url = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : NULL;
$clean_url = dirname(substr($_SERVER['PHP_SELF'], 0, strlen($_SERVER['PHP_SELF']) - strlen($clean_url)));
$clean_url = rtrim($_SERVER['HTTP_HOST'] . $clean_url, '/\\');
 
if ((isset($_SERVER['HTTPS']) AND !in_array(strtolower($_SERVER['HTTPS']), array('off', 'no', 'false', 'disabled'))) OR $_SERVER['SERVER_PORT'] == 443)
{
$scheme = 'https://';
}
else
{
$scheme = 'http://';
}
 
 
$server_exp = explode('.',$_SERVER['HTTP_HOST']);
 
$server_sld = $server_exp[0];
 
$server_domain = implode('.',array_slice($server_exp,1));
 
//获取URL链接第一位是不是M,
$request = explode('/',  $_SERVER["REQUEST_URI"]);
// var_dump($request);
if($request[1] == '?' and $request[2] == 'm'){
 
$request[1] = 'm';
}
 
return array('scheme' =>$scheme,'sld'=>$server_sld,'domain'=>'.'.$server_domain,'request_one'=>$request[1]);
 
}
 
 
/**
*
*移动端域名
* return boolean
* return string
**/
function m_host()
{
 
$m = '';//添加移动二级域名如:m.XXX.XXX; 这个地方只需要加m 即可
 
if($m){
 
return $m;
}
return false;
}
function web_host()
{
return 'ask';//添加PC二级域名如:WWW.XXX.XXX; 这个地方只需要加WWW 即可
}
 
/**
* 新增 二级域名跳转函数
*
* @return boolean
*/
function moblie_sikp($open = true)
{
 
if(!m_host()){
return false;
}
 
$user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
// 新增内容
$parse_url = base_parse_url();
$m_url = $parse_url['scheme'].m_host().$parse_url['domain'];
$web_url = $parse_url['scheme'].'ask'.$parse_url['domain'];
$request_url = $_SERVER["REQUEST_URI"];
// ?/m/ignore_ua_check-FALSE
 
if($open){
 
if($parse_url['sld'] != m_host())
{
header('Location: '.$m_url.$request_url);
die;
}
}else{
 
if($parse_url['sld'] == m_host())
{
header('Location: '.$web_url.$request_url);
die;
}
 
}
 
return false;
}
 
/**HTTP::跳转判断
* 如果是移动端则替换域名为移动
*如果是PC端则替换域名为 PC
*/
 
function domain_replace($url){
 
if(!m_host()){
return $url;
}
 
$parse_url = base_parse_url();
$m_host = $parse_url['scheme'].m_host();
$web_host = $parse_url['scheme'].web_host();
if(is_mobile()){
 
 
if (HTTP::get_cookie('_ignore_ua_check') == 'TRUE' AND !$ignore_cookie)
{
$url = str_replace($m_host,$web_host,$url);
}else{
$url = str_replace($web_host,$m_host,$url);
}
 
 
}else{
$url = str_replace($m_host,$web_host,$url);
 
}
return $url;
}

打赏

1次打赏,累计5.00元

8 个评论

厉害了,大神,能不能提供一个完整的覆盖文件啊,不是懒是不会,照着做,结果也是不一样
漏了 一句。。。 你看下
请问漏了那一句啊,请问
谢谢分享,有需要的朋友们可以试试,有结果也请反馈分享下。
更改此 函数 这句 get_request_route
有成功的吗?
我不懂这个,所以问问有没有直接打包上传的
有成功的吗?

要回复文章请先登录注册