一扣唱、目前我們的需求:
之前在老東家的時候,有這么一個需求,在APP端對課程進行分享(分享到QQ噪沙、微信炼彪、朋友圈、微博正歼、QQ空間)辐马,如果當前是在手機端進入QQ空間,點擊該分享鏈接跳轉(zhuǎn)的是手機端APP課程詳情界面(已登錄的情況局义,未登錄則跳轉(zhuǎn)到等界面)喜爷;如果當前是在PC端進入的QQ空間,點擊該鏈接跳轉(zhuǎn)的則是PC端課程詳情界面(已登錄的情況萄唇,未登錄則跳轉(zhuǎn)到登錄界面)在PC端對課程進行分享(分享到微博檩帐、QQ空間),與上反之另萤。
二湃密、解決方案:
原先商討是將PC端的分享鏈接地址與APP端的分享鏈接地址統(tǒng)一,再由Nginx去判斷客戶端類型四敞,進行不同的服務(wù)分發(fā)泛源,之前商討的是分享鏈接地址前綴統(tǒng)一成學(xué)員前端web,這樣的話安卓和IOS兩邊都需要改忿危,而且還需要在前端寫死俩由,感覺這樣的話不是很靈活,因為我們APP這邊還需要走適配器癌蚁,也會有不同的環(huán)境幻梯,每個環(huán)境對應(yīng)的地址不一樣,每次都改的話對前端來說效率不是很高努释,所以決定前端暫時不動碘梢,仍舊是請求接口地址,分發(fā)操作還是交由Nginx來統(tǒng)一處理伐蒂。這樣的話煞躬,每次發(fā)版新環(huán)境的時候,nginx里面就需要注意一下了逸邦,我們需要在nginx.conf配置文件中的server下面配置兩個location:
三恩沛、最終實現(xiàn):
這里暫時以老東家預(yù)發(fā)布環(huán)境為例:
- 1、解析pc端分享鏈接地址
location /web/share {
alias /app/content/http/data/web/;
if ($http_user_agent ~ “^((.MIDP.)|(.WAP.)|(.UP.Browser.)|(.Smartphone.)|(.Obigo.)|(.Mobile.)|(.AU.Browser.)|(.wxd.Mms.)|(.WxdB.Browser.)|(.CLDC.)|(.UP.Link.)|(.KM.Browser.)|(.UCWEB.)|(.SEMC-Browser.)|(.Mini.)|(.Symbian.)|(.Palm.)|(.Nokia.)|(.Panasonic.)|(.MOT-.)|(.SonyEricsson.)|(.NEC-.)|(.Alcatel.)|(.Ericsson.)|(.BENQ.)|(.BenQ.)|(.Amoisonic.)|(.Amoi-.)|(.Capitel.)|(.PHILIPS.)|(.SAMSUNG.)|(.Lenovo.)|(.Mitsu.)|(.Motorola.)|(.SHARP.)|(.WAPPER.)|(.LG-.)|(.LG/.)|(.EG900.)|(.CECT.)|(.Compal.)|(.kejian.)|(.Bird.)|(.BIRD.)|(.G900/V1.0.)|(.Arima.)|(.CTL.)|(.TDG.)|(.Daxian.)|(.DAXIAN.)|(.DBTEL.)|(.Eastcom.)|(.EASTCOM.)|(.PANTECH.)|(.Dopod.)|(.Haier.)|(.HAIER.)|(.KONKA.)|(.KEJIAN.)|(.LENOVO.)|(.Soutec.)|(.SOUTEC.)|(.SAGEM.)|(.SEC-.)|(.SED-.)|(.EMOL-.)|(.INNO55.)|(.ZTE.)|(.iPhone.)|(.Android.)|(.Windows CE.)|(java.)|(Opera.))$” ){
rewrite ^ http://xxxx.com/mobile/share/index.html;
}
}
- 2缕减、解析app端分享鏈接
location /mobile/share {
alias /app/mobile-tomcat/webapps/mobile/share;
if ($http_user_agent !~ “^((.MIDP.)|(.WAP.)|(.UP.Browser.)|(.Smartphone.)|(.Obigo.)|(.Mobile.)|(.AU.Browser.)|(.wxd.Mms.)|(.WxdB.Browser.)|(.CLDC.)|(.UP.Link.)|(.KM.Browser.)|(.UCWEB.)|(.SEMC-Browser.)|(.Mini.)|(.Symbian.)|(.Palm.)|(.Nokia.)|(.Panasonic.)|(.MOT-.)|(.SonyEricsson.)|(.NEC-.)|(.Alcatel.)|(.Ericsson.)|(.BENQ.)|(.BenQ.)|(.Amoisonic.)|(.Amoi-.)|(.Capitel.)|(.PHILIPS.)|(.SAMSUNG.)|(.Lenovo.)|(.Mitsu.)|(.Motorola.)|(.SHARP.)|(.WAPPER.)|(.LG-.)|(.LG/.)|(.EG900.)|(.CECT.)|(.Compal.)|(.kejian.)|(.Bird.)|(.BIRD.)|(.G900/V1.0.)|(.Arima.)|(.CTL.)|(.TDG.)|(.Daxian.)|(.DAXIAN.)|(.DBTEL.)|(.Eastcom.)|(.EASTCOM.)|(.PANTECH.)|(.Dopod.)|(.Haier.)|(.HAIER.)|(.KONKA.)|(.KEJIAN.)|(.LENOVO.)|(.Soutec.)|(.SOUTEC.)|(.SAGEM.)|(.SEC-.)|(.SED-.)|(.EMOL-.)|(.INNO55.)|(.ZTE.)|(.iPhone.)|(.Android.)|(.Windows CE.)|(java.)|(Opera.))$” ){
rewrite ^ http://xxxx.com/web/share/;
}
}
以上就是配置的一些信息雷客,有興趣的可以自己去研究一下。