移动端

移动端

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

建议a595975822 发表了文章 • 7 个评论 • 226 次浏览 • 2018-11-28 13:38 • 来自相关话题

前言:周末有时间看了下最新的2.2的程序;把以前的代码重新规范化整理了下; 修改前 先把二级域名解析到相应的站点上;在m_host函数内 把二级域名手动添加上,不添加则视为不启用二级域名和移动端的绑定 (1) ...查看全部
前言:周末有时间看了下最新的2.2的程序;把以前的代码重新规范化整理了下;
修改前 先把二级域名解析到相应的站点上;在m_host函数内 把二级域名手动添加上,不添加则视为不启用二级域名和移动端的绑定

(1)functions.inc.php 下新增函数
1.base_parse_url;m_host;pre_rewite;moblie_sikp
2.get_request_route下新增判断语句
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
#=======================内容如下=====================
1.functions.inc.php 下新增函数
/**
* 解析主域信息
*@author:yutou 1004113364@qq.com
* @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]);
}
/**
*@author:yutou 1004113364@qq.com
*移动端域名
* return boolean
* return string
**/
function m_host()
{

$m = '';//添加二级域名如:www.XXX.XXX; 这个地方只需要加WWW 即可
if($m){
return $m;
}
return false;
}
/**
*当域名为PC时 过滤掉 手机的静态规则
*当域名为移动时 过滤掉 PC的静态规则
**/
function pre_rewite($rewite)
{
$rew=array();
if(!is_mobile()){
foreach ($rewite as $key => $val) {
if($val != '/m/===/')
{
$rew =$val;
}
}
}else{
foreach ($rewite as $key => $val) {
if($val != '/explore/===/')
{
$rew =$val;
}
}
}
return $rew;
}

2.get_request_route下新增判断语句
$replace_array = array("(:any)" => "([^\"'&#\?\/]+[&#\?\/]*[^\"'&#\?\/]*)", "(:num)" => "([0-9]+)");
//搜索上面这句,在它下面加上
//新增如下语句
if(m_host())
{
$request_routes = pre_rewite($request_routes);
}
3.新增函数 moblie_sikp
/**
* 新增 二级域名跳转函数
*@author:yutou 1004113364@qq.com
* @return boolean
*/
function moblie_sikp()
{
$user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
// 新增内容
$parse_url = base_parse_url();
$m_url = $parse_url['scheme'].m_host().$parse_url['domain'];
$request_url = $_SERVER["REQUEST_URI"];
if($parse_url['sld'] == m_host())
{
return true;
}
else if($parse_url['request_one'] == 'm' AND $parse_url['sld'] != m_host())
{

if($request_url == '/?/m/' or $request_url == '/m/')
{
$server_url = $m_url;
}else{
$request_routes = get_request_route();
foreach ($request_routes as $key => $val)
{
$re_val = str_replace('/', '\/', $val[1]);
if (preg_match('/^\/' . $re_val . '(.*)$/', $request_url))
{
$url = preg_replace('/^\/' . str_replace('/', '\/', $val[1]) . '/i', str_replace('\/', '/', $val[0]), $request_url);
$url = '/'.$request_url;
break;
}
}
$server_url = $m_url.$url;
}

header('Location: '.$server_url);
die;
// return true;
}
if (preg_match('/iemobile/i', $user_agent) OR preg_match('/mobile\ssafari/i', $user_agent) OR preg_match('/iphone\sos/i', $user_agent) OR preg_match('/android/i', $user_agent) OR preg_match('/symbian/i', $user_agent) OR preg_match('/series40/i', $user_agent))
{

header('Location: '.$m_url.$request_url);
die;
}
return false;
}
4. 修改函数IS_MOBILE
// 调用函数
if(m_host()){
return moblie_sikp();
}
//搜索下面这句,在它上面加上
$user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
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']; // 应用目录

移动端怎么删除?

问与答kala 回复了问题 • 2 人关注 • 1 个回复 • 234 次浏览 • 2018-07-20 17:00 • 来自相关话题

wecenter有对百度的MIP改造了解的吗?

回复

建站运营marco_hsu 发起了问题 • 1 人关注 • 0 个回复 • 917 次浏览 • 2017-09-24 11:00 • 来自相关话题

[转载存档]WeCenter 三步实现手机版绑定二级域名移动m站

kenw2004 发表了文章 • 9 个评论 • 1499 次浏览 • 2017-03-24 13:35 • 来自相关话题

此文复制自网络,我记得以前通晓有发布过修改方法,不过我当时小试了一下,没成功,就放弃了。近期有人在这里问起这个,随手找到以下资料供参考,并未亲自测试,等有空时再试试。如果你有测试过,欢迎发布跟帖 WeCenter三步实现手机版绑定二级 ...查看全部
此文复制自网络,我记得以前通晓有发布过修改方法,不过我当时小试了一下,没成功,就放弃了。近期有人在这里问起这个,随手找到以下资料供参考,并未亲自测试,等有空时再试试。如果你有测试过,欢迎发布跟帖

WeCenter三步实现手机版绑定二级域名方法如下:

一、将m。你的域名。com解析到你的服务器(与www一样的解析方式)

二、修改index。php文件【将WeCenter换成你的域名】在include('system/system.php');后面添加如下代码大致10几行的样子
if ($_SERVER['HTTP_HOST'] == '你的m站网址') {
if (!is_mobile()) {
header('Location: http://你的PC站网址' . $_SERVER['REQUEST_URI']);exit;
}
} else if ($_SERVER['HTTP_HOST'] == '你的PC站网址') {
if (is_mobile()) {
header('Location: http://你的m站网址' . $_SERVER['REQUEST_URI']);
exit;
}
}

if (preg_match('#m\.(.*)#', $_SERVER['HTTP_HOST'])) {
$uri = $_SERVER['REQUEST_URI'];
if (!preg_match('#/account/#', $uri)) {
if (preg_match('#/?/m/#', $uri)) {
$uri = str_replace('/?/m/', '/', $uri);
}
if (preg_match('#^/\?/ajax/#', $uri)) {
$uri = str_replace('/?', '', $uri);
}
if (!preg_match('#/.+/ajax#', $uri)) {
if (is_mobile() && !preg_match('#^/m/#', $uri)) {
$_SERVER['REQUEST_URI'] = '/m' . $uri;
}
}
}
}




三、修改views/default/m目录下面的所有模板

只要模板是带有移动端m跳转的链接都要删除掉m(有点多,自行认真检查,以免部分未修改发生错误)

最好的方案就是将views/default/m先备份然后再修改,

形如

<ahref="m/login/"class="registerbtnbtn-default"><?php_e('登录');?></a>

改成这样

<ahref="/login/"class="registerbtnbtn-default"><?php_e('登录');?></a>

至此全部修改完成!

提醒:目前发现的问题就是在PC端的时候无法使用微信扫一扫登录,其他暂时没有发现。

移动端小bug,动态页和问题内容使用块引用BUG

kenw2004 回复了问题 • 2 人关注 • 1 个回复 • 707 次浏览 • 2017-03-03 10:22 • 来自相关话题

【3步实现】手机端绑定二级域名m

net 发表了文章 • 6 个评论 • 814 次浏览 • 2016-11-23 12:06 • 来自相关话题

共享结束!
共享结束!

测试中

net 发表了文章 • 6 个评论 • 522 次浏览 • 2016-11-16 10:08 • 来自相关话题

整理中
整理中

如何在手机端单独调用“问题列表”和“文章列表”?

回复

aaron_cai 发起了问题 • 1 人关注 • 0 个回复 • 399 次浏览 • 2016-10-31 19:48 • 来自相关话题

官方BUG修改

风见雨下 发表了文章 • 1 个评论 • 680 次浏览 • 2016-10-31 15:36 • 来自相关话题

bug描述:在手机的移动端上,发起问题的时候选择话题会自动检索出下拉框,选择以后下拉框并不会消失(会把发起按钮遮住),再次搜索的时候不会显示新的搜索结果 原因:aws-mobile.js问题 解决方案:用http://wenda.wec ...查看全部
bug描述:在手机的移动端上,发起问题的时候选择话题会自动检索出下拉框,选择以后下拉框并不会消失(会把发起按钮遮住),再次搜索的时候不会显示新的搜索结果
原因:aws-mobile.js问题
解决方案:用http://wenda.wecenter.com/static/mobile/js/aws-mobile.js (打开页面,另存为即可)替换自己项目里面的search.js(wecenter官方的社区站已经更新此bug,但是没有发布,估计下一版会更新)
感谢群成员 Winds一起配合找到解决方案

如何设置网站移动端访问按照PC端效果显示?

回复

ZChristopher 发起了问题 • 1 人关注 • 0 个回复 • 435 次浏览 • 2016-10-15 12:35 • 来自相关话题

移动端怎么删除?

回复

问与答kala 回复了问题 • 2 人关注 • 1 个回复 • 234 次浏览 • 2018-07-20 17:00 • 来自相关话题

wecenter有对百度的MIP改造了解的吗?

回复

建站运营marco_hsu 发起了问题 • 1 人关注 • 0 个回复 • 917 次浏览 • 2017-09-24 11:00 • 来自相关话题

移动端小bug,动态页和问题内容使用块引用BUG

回复

kenw2004 回复了问题 • 2 人关注 • 1 个回复 • 707 次浏览 • 2017-03-03 10:22 • 来自相关话题

如何在手机端单独调用“问题列表”和“文章列表”?

回复

aaron_cai 发起了问题 • 1 人关注 • 0 个回复 • 399 次浏览 • 2016-10-31 19:48 • 来自相关话题

如何设置网站移动端访问按照PC端效果显示?

回复

ZChristopher 发起了问题 • 1 人关注 • 0 个回复 • 435 次浏览 • 2016-10-15 12:35 • 来自相关话题

我说两个wecenter话题自定义标题和URL上的不完美

回复

止于半善 回复了问题 • 2 人关注 • 1 个回复 • 596 次浏览 • 2016-10-14 15:34 • 来自相关话题

如何在移动端的发现页面调用问题中的图片(附件)

回复

net 发起了问题 • 2 人关注 • 0 个回复 • 581 次浏览 • 2016-10-11 00:37 • 来自相关话题

移动端如何绑定域名?

回复

no_reg 回复了问题 • 2 人关注 • 1 个回复 • 482 次浏览 • 2016-08-17 15:00 • 来自相关话题

100元求解决简单跳转问题!

回复

dongbaoshan 回复了问题 • 3 人关注 • 1 个回复 • 541 次浏览 • 2016-07-08 14:22 • 来自相关话题

【求助】移动端自适应后编辑器为什么不能是CK?

回复

sea198710 发起了问题 • 2 人关注 • 0 个回复 • 551 次浏览 • 2016-03-28 11:08 • 来自相关话题

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

建议a595975822 发表了文章 • 7 个评论 • 226 次浏览 • 2018-11-28 13:38 • 来自相关话题

前言:周末有时间看了下最新的2.2的程序;把以前的代码重新规范化整理了下; 修改前 先把二级域名解析到相应的站点上;在m_host函数内 把二级域名手动添加上,不添加则视为不启用二级域名和移动端的绑定 (1) ...查看全部
前言:周末有时间看了下最新的2.2的程序;把以前的代码重新规范化整理了下;
修改前 先把二级域名解析到相应的站点上;在m_host函数内 把二级域名手动添加上,不添加则视为不启用二级域名和移动端的绑定

(1)functions.inc.php 下新增函数
1.base_parse_url;m_host;pre_rewite;moblie_sikp
2.get_request_route下新增判断语句
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
#=======================内容如下=====================
1.functions.inc.php 下新增函数
/**
* 解析主域信息
*@author:yutou 1004113364@qq.com
* @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]);
}
/**
*@author:yutou 1004113364@qq.com
*移动端域名
* return boolean
* return string
**/
function m_host()
{

$m = '';//添加二级域名如:www.XXX.XXX; 这个地方只需要加WWW 即可
if($m){
return $m;
}
return false;
}
/**
*当域名为PC时 过滤掉 手机的静态规则
*当域名为移动时 过滤掉 PC的静态规则
**/
function pre_rewite($rewite)
{
$rew=array();
if(!is_mobile()){
foreach ($rewite as $key => $val) {
if($val != '/m/===/')
{
$rew =$val;
}
}
}else{
foreach ($rewite as $key => $val) {
if($val != '/explore/===/')
{
$rew =$val;
}
}
}
return $rew;
}

2.get_request_route下新增判断语句
$replace_array = array("(:any)" => "([^\"'&#\?\/]+[&#\?\/]*[^\"'&#\?\/]*)", "(:num)" => "([0-9]+)");
//搜索上面这句,在它下面加上
//新增如下语句
if(m_host())
{
$request_routes = pre_rewite($request_routes);
}
3.新增函数 moblie_sikp
/**
* 新增 二级域名跳转函数
*@author:yutou 1004113364@qq.com
* @return boolean
*/
function moblie_sikp()
{
$user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
// 新增内容
$parse_url = base_parse_url();
$m_url = $parse_url['scheme'].m_host().$parse_url['domain'];
$request_url = $_SERVER["REQUEST_URI"];
if($parse_url['sld'] == m_host())
{
return true;
}
else if($parse_url['request_one'] == 'm' AND $parse_url['sld'] != m_host())
{

if($request_url == '/?/m/' or $request_url == '/m/')
{
$server_url = $m_url;
}else{
$request_routes = get_request_route();
foreach ($request_routes as $key => $val)
{
$re_val = str_replace('/', '\/', $val[1]);
if (preg_match('/^\/' . $re_val . '(.*)$/', $request_url))
{
$url = preg_replace('/^\/' . str_replace('/', '\/', $val[1]) . '/i', str_replace('\/', '/', $val[0]), $request_url);
$url = '/'.$request_url;
break;
}
}
$server_url = $m_url.$url;
}

header('Location: '.$server_url);
die;
// return true;
}
if (preg_match('/iemobile/i', $user_agent) OR preg_match('/mobile\ssafari/i', $user_agent) OR preg_match('/iphone\sos/i', $user_agent) OR preg_match('/android/i', $user_agent) OR preg_match('/symbian/i', $user_agent) OR preg_match('/series40/i', $user_agent))
{

header('Location: '.$m_url.$request_url);
die;
}
return false;
}
4. 修改函数IS_MOBILE
// 调用函数
if(m_host()){
return moblie_sikp();
}
//搜索下面这句,在它上面加上
$user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
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']; // 应用目录

[转载存档]WeCenter 三步实现手机版绑定二级域名移动m站

kenw2004 发表了文章 • 9 个评论 • 1499 次浏览 • 2017-03-24 13:35 • 来自相关话题

此文复制自网络,我记得以前通晓有发布过修改方法,不过我当时小试了一下,没成功,就放弃了。近期有人在这里问起这个,随手找到以下资料供参考,并未亲自测试,等有空时再试试。如果你有测试过,欢迎发布跟帖 WeCenter三步实现手机版绑定二级 ...查看全部
此文复制自网络,我记得以前通晓有发布过修改方法,不过我当时小试了一下,没成功,就放弃了。近期有人在这里问起这个,随手找到以下资料供参考,并未亲自测试,等有空时再试试。如果你有测试过,欢迎发布跟帖

WeCenter三步实现手机版绑定二级域名方法如下:

一、将m。你的域名。com解析到你的服务器(与www一样的解析方式)

二、修改index。php文件【将WeCenter换成你的域名】在include('system/system.php');后面添加如下代码大致10几行的样子
if ($_SERVER['HTTP_HOST'] == '你的m站网址') {
if (!is_mobile()) {
header('Location: http://你的PC站网址' . $_SERVER['REQUEST_URI']);exit;
}
} else if ($_SERVER['HTTP_HOST'] == '你的PC站网址') {
if (is_mobile()) {
header('Location: http://你的m站网址' . $_SERVER['REQUEST_URI']);
exit;
}
}

if (preg_match('#m\.(.*)#', $_SERVER['HTTP_HOST'])) {
$uri = $_SERVER['REQUEST_URI'];
if (!preg_match('#/account/#', $uri)) {
if (preg_match('#/?/m/#', $uri)) {
$uri = str_replace('/?/m/', '/', $uri);
}
if (preg_match('#^/\?/ajax/#', $uri)) {
$uri = str_replace('/?', '', $uri);
}
if (!preg_match('#/.+/ajax#', $uri)) {
if (is_mobile() && !preg_match('#^/m/#', $uri)) {
$_SERVER['REQUEST_URI'] = '/m' . $uri;
}
}
}
}




三、修改views/default/m目录下面的所有模板

只要模板是带有移动端m跳转的链接都要删除掉m(有点多,自行认真检查,以免部分未修改发生错误)

最好的方案就是将views/default/m先备份然后再修改,

形如

<ahref="m/login/"class="registerbtnbtn-default"><?php_e('登录');?></a>

改成这样

<ahref="/login/"class="registerbtnbtn-default"><?php_e('登录');?></a>

至此全部修改完成!

提醒:目前发现的问题就是在PC端的时候无法使用微信扫一扫登录,其他暂时没有发现。

【3步实现】手机端绑定二级域名m

net 发表了文章 • 6 个评论 • 814 次浏览 • 2016-11-23 12:06 • 来自相关话题

共享结束!
共享结束!

测试中

net 发表了文章 • 6 个评论 • 522 次浏览 • 2016-11-16 10:08 • 来自相关话题

整理中
整理中

官方BUG修改

风见雨下 发表了文章 • 1 个评论 • 680 次浏览 • 2016-10-31 15:36 • 来自相关话题

bug描述:在手机的移动端上,发起问题的时候选择话题会自动检索出下拉框,选择以后下拉框并不会消失(会把发起按钮遮住),再次搜索的时候不会显示新的搜索结果 原因:aws-mobile.js问题 解决方案:用http://wenda.wec ...查看全部
bug描述:在手机的移动端上,发起问题的时候选择话题会自动检索出下拉框,选择以后下拉框并不会消失(会把发起按钮遮住),再次搜索的时候不会显示新的搜索结果
原因:aws-mobile.js问题
解决方案:用http://wenda.wecenter.com/static/mobile/js/aws-mobile.js (打开页面,另存为即可)替换自己项目里面的search.js(wecenter官方的社区站已经更新此bug,但是没有发布,估计下一版会更新)
感谢群成员 Winds一起配合找到解决方案

移动端 使用2级域名 早就实现了

a595975822 发表了文章 • 2 个评论 • 550 次浏览 • 2016-09-13 18:19 • 来自相关话题

移动端 使用2级域名 早就实现了  但是好像 没有多少然需要哈,     需要联系我把,附带我的淘宝店 地址   https://shop72708621.taobao.com
移动端 使用2级域名 早就实现了  但是好像 没有多少然需要哈,
 
 
需要联系我把,附带我的淘宝店 地址   https://shop72708621.taobao.com