便宜做網(wǎng)站,不用客戶動(dòng)手特價(jià)999元,源碼整套僅需50元起

- 百度云備案操作碼、阿里云備案服務(wù)號(hào)等產(chǎn)品備案授權(quán)碼 低至3.9元1個(gè) 量大從優(yōu)
- 網(wǎng)址后邊帶問號(hào),收錄了非常多不存在的頁面,是什么原因
- 付費(fèi)網(wǎng)站內(nèi)容填充和網(wǎng)站小問題調(diào)整,便宜來襲
- 野狼SEO團(tuán)隊(duì)為什么會(huì)受到大家的歡迎
- 廣東省ICP備案審核需要多長時(shí)間?東莞客戶ICP備案已通過 6個(gè)工作日
- app開發(fā)為什么價(jià)格差異大,主要原因就在這里
- 使用開源CMS注定對(duì)網(wǎng)站優(yōu)化不友好
- 域名選擇對(duì)網(wǎng)站SEO效果的影響分析
阿里云cdn做了之后手機(jī)站和電腦站無法正常切換的解決方案
網(wǎng)上有非常多的解決方法,其中阿里云官方的方法是增加 Vary:User-Agent來讓CDN進(jìn)行區(qū)分緩存:
可以通過設(shè)置Vary頭來區(qū)分移動(dòng)和pc端自適應(yīng)。
cdn可以根據(jù)vary頭信息來判斷是否緩存相同的url帶有不同的頭信息的請(qǐng)求。
所以可以在源站返回的請(qǐng)求頭上加上Vary:User-Agent這個(gè)字段,cdn就會(huì)對(duì)攜帶不同User-Agent做不同的緩存的。達(dá)到User-Agent這個(gè)頭信息能到達(dá)源站。
nginx可以在server里面加上
add_header Vary ''Accept-Encoding, User-Agent'';
實(shí)現(xiàn)增加Vary:User-Agent這個(gè)字段的效果。
所以,我們圍繞這個(gè)進(jìn)行設(shè)置:
第一步:設(shè)置服務(wù)器,讓服務(wù)器支持Vary:
1. Apache 環(huán)境網(wǎng)站配置 Vary:User-Agent
將以下代碼根據(jù)實(shí)際情況加入對(duì)應(yīng)網(wǎng)站根目錄的.htaccess 文件中,或者加入 Apache 的主配置文件 httpd.conf:
Header append Vary User-Agent
2. Nginx 環(huán)境網(wǎng)站配置 Vary:User-Agent
將以下代碼添加到對(duì)應(yīng)站點(diǎn)的配置文件中:
add_header Vary "User-Agent";
3. PHP 站點(diǎn)配置 Vary:User-Agent
將以下代碼添加到你 PHP 網(wǎng)站的合適位置,最好是屬于公共文件,例如數(shù)據(jù)庫配置文件中:
<?php header("Vary: User-Agent"); ?>
4. WordPress 站點(diǎn)配置 Vary:User-Agent
將以下代碼添加到當(dāng)前 WordPress 主題的 functions.php 文件中:
// WordPress 配置 Vary:User-Agent
add_filter('wp_headers', 'add_vary_header');
function add_vary_header($headers) {
$headers['Vary'] = 'User-Agent';
return $headers;
}
其他PHP程序也可以參照這樣設(shè)置。
第二步:改造網(wǎng)站程序,讓網(wǎng)南站程序能夠響應(yīng)不同的User-Agent
我們以PHP程序?yàn)槔ㄟ@是永易搜CMS中的判斷手機(jī)電腦的代碼):
/**
* 判斷用戶是否為移動(dòng)用戶,可以判斷iphone,Android,Windows Mobile和一般的手機(jī)系統(tǒng)
* @return boolean
*/
function is_mobile(){
//判斷手機(jī)發(fā)送的客戶端標(biāo)志,兼容性有待提高
if(isset($_SERVER['HTTP_USER_AGENT'])){
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($userAgent,'iPhone')||strpos($userAgent,'iPad')||strpos($userAgent,'iPod')||strpos($userAgent,'iOS')){
return true;
}
if (isset($_SERVER['HTTP_X_WAP_PROFILE'])){
return true;
}
$clientkeywords=array('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile');
if (preg_match('/(' . implode('|', $clientkeywords) . ')/i', strtolower($_SERVER['HTTP_USER_AGENT']))){
return true;
}
}
//協(xié)議法,因?yàn)橛锌赡懿粶?zhǔn)確,放到最后判斷
if (isset($_SERVER['HTTP_ACCEPT'])) {
// 如果只支持wml并且不支持html那一定是移動(dòng)設(shè)備
// 如果支持wml和html但是wml在html之前則是移動(dòng)設(shè)備
if (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))) {
return true;
}
}
//如果via信息含有wap則一定是移動(dòng)設(shè)備,部分服務(wù)商會(huì)屏蔽該信息
if(isset($_SERVER['HTTP_VIA'])){
return stristr($_SERVER['HTTP_VIA'],'wap')?true:false;
}
return false;
}
切記,網(wǎng)上有關(guān)于HTTP_VIA放在最前邊進(jìn)行判斷的程序,實(shí)際上是不行的,后來永易搜CMS進(jìn)行了改良,給VIA放到最后判斷,才可以實(shí)現(xiàn)。

本文作者:野狼SEO團(tuán)隊(duì)

十六年網(wǎng)站建設(shè)相關(guān)經(jīng)驗(yàn)
一站式為您提供網(wǎng)站相關(guān)服務(wù)
歡迎掃碼咨詢
還沒有人評(píng)論,快來搶個(gè)沙發(fā)!