前言:周末有时间看了下最新的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;
}
2019-09-17 11:29
2018-12-19 10:32
2018-12-07 13:37
2018-12-01 09:56
2018-11-30 12:13
2018-11-29 08:58
2018-11-28 23:04
2018-11-28 22:02
2018-11-28 16:18