手机端跳转的一个小建议

手机端跳转的一个小建议

By 迈达斯之手 at 2016-04-22
0人收藏 • 1964人看过

针对没有设置手机端域名的情况,主域名在被手机访问时也应该要加载为手机模板。

common.php(line755-794)

/* Set current template
 * default: PC Version
 * mobile: Mobile Version
 * api: API
 */
if ($IsApp) {
	///balabalbala省略
} elseif ($_SERVER['HTTP_HOST'] == $Config['MobileDomainName']) {
	$TemplatePath = __DIR__ . '/styles/mobile/template/';
	$Style        = 'Mobile';
	header('X-Frame-Options: SAMEORIGIN');
} else {
	$TemplatePath = __DIR__ . '/styles/default/template/';
	$Style        = 'Default';
	header('X-Frame-Options: SAMEORIGIN');
	//header('X-XSS-Protection: 1; mode=block');
	//X-XSS-Protection may cause some issues in dashboard
}
$CurView = GetCookie('View', $IsMobile ? 'mobile' : 'desktop');
if ($Config['MobileDomainName'] && $_SERVER['HTTP_HOST'] != $Config['MobileDomainName'] && $CurView == 'mobile' && !$IsApp) {
	//如果是手机,则跳转到移动版,暂时关闭
	header("HTTP/1.1 302 Moved Temporarily");
	header("Status: 302 Moved Temporarily");
	header('Location: ' . $CurProtocol . $Config['MobileDomainName'] . $RequestURI);
	exit();
}


主要是修改776行的条件判断:

/* Set current template
 * default: PC Version
 * mobile: Mobile Version
 * api: API
 */
$CurView = GetCookie('View', $IsMobile ? 'mobile' : 'desktop'); 

if ($IsApp) {
	//balabalabla省略
} elseif ($_SERVER['HTTP_HOST'] == $Config['MobileDomainName'] || $CurView == 'mobile') {
	$TemplatePath = __DIR__ . '/styles/mobile/template/';
	$Style        = 'Mobile';
	header('X-Frame-Options: SAMEORIGIN');
} else {
	$TemplatePath = __DIR__ . '/styles/default/template/';
	$Style        = 'Default';
	header('X-Frame-Options: SAMEORIGIN');
	//header('X-XSS-Protection: 1; mode=block');
	//X-XSS-Protection may cause some issues in dashboard
}

if ($Config['MobileDomainName'] && $_SERVER['HTTP_HOST'] != $Config['MobileDomainName'] && $CurView == 'mobile' && !$IsApp) {
	//如果是手机,则跳转到移动版,暂时关闭
	header("HTTP/1.1 302 Moved Temporarily");
	header("Status: 302 Moved Temporarily");
	header('Location: ' . $CurProtocol . $Config['MobileDomainName'] . $RequestURI);
	exit();
}


5 个回复 | 最后更新于 2016-04-22
lincanbin
2016-04-22
#1

if ($IsApp) {
    ///balabalbala省略
} elseif ($_SERVER['HTTP_HOST'] == $Config['MobileDomainName'] || ( !$Config['MobileDomainName'] && $IsMobile )) {
    //blbl省略
}

实际上应该这么写。

迈达斯之手
2016-04-22
#2

回复#1 @lincanbin :

这样写会不会手机页面里的“桌面模式”用不了了?

http://www.94cb.com/view-desktop?callback=%2F

毕竟它是通过cookie强制切换的

lincanbin
2016-04-22
#3

回复#2 @迈达斯之手 :

这个只要判断$Config['MobileDomainName']为空时不显示就好了。

迈达斯之手
2016-04-22
#4

回复#3 @lincanbin :

会考虑加到下个版本里吗

lincanbin
2016-04-22
#5

回复 #0 @迈达斯之手 :

已经加了,但是还是建议每个不同的页面都要有不同的URL,对于手机和PC都是。


登 录


现在注册

QQ  登 录    Weibo  登 录    GitHub  登 录