国产人与禽ZoZ0性伦多活几年,真实国产老熟女无套中出,аⅴ资源中文在线天堂,另类老妇性BBwBBw

野狼SEO團(tuán)隊(duì),純白帽SEO倡導(dǎo)者!18年專注網(wǎng)站優(yōu)化服務(wù),支持月付!? [點(diǎn)擊查看公司宣傳冊(cè)]
專注純白帽、整站正規(guī)優(yōu)化
讓你排名上升,流量暴漲!
網(wǎng)站優(yōu)化服務(wù)電話
0371-56789-390
詳細(xì)內(nèi)容
當(dāng)前位置:首頁 > 技術(shù)資料 > 服務(wù)器技術(shù) > 詳情

阿里云cdn做了之后手機(jī)站和電腦站無法正常切換的解決方案

發(fā)布時(shí)間:2019-06-19 來源:本站原創(chuàng) 作者:野狼SEO團(tuán)隊(duì) 閱讀:2239

網(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ù)

歡迎掃碼咨詢

訪客頭像訪 客107.1***
新評(píng)論

還沒有人評(píng)論,快來搶個(gè)沙發(fā)!