推薦-Nginx Rewrite的應用-根據訪問平臺做簡單跳轉

Nginx Rewrite的應用-根據訪問平臺做簡單跳轉



Rewrite模塊簡介

   Rewrite最主要的作用就是對URL進行重寫,即重定向。舉個簡單的例子,我們用電腦打開淘寶顯示出的頁面與手機打開顯示出的頁面,或者是IE與Chrome瀏覽器打開的頁面,有著特別大的差別,這就是使用了Rewrite模塊,為用戶提供最合適的頁面。


Rewrite的配置

一. 在配置之前請先安裝好Nginx。不會安裝的同學請看我之前寫過的Nginx的編譯安裝
二. 下面我們來編輯Nginx的主配置文件:

[root@code ~]# vim /usr/local/nginx/conf/nginx.conf

在server段加入如下內容:

if ($http_user_agent ~ Mobile){
rewrite ^(.*)$ /Mobile/$1 break;
}
if ($http_user_agent ~ Chrome){
rewrite ^(.*)$ /Chrome/$1 break;
}
if ($http_user_agent ~ like){
rewrite ^(.*)$ /IE/$1 break;
}
if ($http_user_agent ~ Gecko){
rewrite ^(.*)$ /Firefox/$1 break;
}

這段代碼是判斷用戶使用的是什么平臺訪問的,并根據平臺的不同將請求的資源重定向到特定的URL。

三. 下面定義訪問頁面

1.為Mobile定制的訪問頁面
[root@code ~]# mkdir -p /usr/local/nginx/html/Mobile/
[root@code ~]# echo “This is Mobile Page” > /usr/local/nginx/html/Mobile/test.html

2.為Chrome定制的訪問頁面
[root@code ~]# mkdir -p /usr/local/nginx/html/Chrome/
[root@code ~]# echo “This is Chrome Page” > /usr/local/nginx/html/Chrome/test.html

3.為IE定制的訪問頁面
[root@code ~]# mkdir -p /usr/local/nginx/html/IE/
[root@code ~]# echo “This is IE Page” > /usr/local/nginx/html/IE/test.html

4.為Firefox定制的訪問頁面
[root@code ~]# mkdir -p /usr/local/nginx/html/Firefox/
[root@code ~]# echo “This is Firefox Page” > /usr/local/nginx/html/Firefox/test.html

5.啟動服務或重啟服務
啟動:[root@code ~]# /usr/local/nginx/sbin/nginx
重啟:[root@code ~]# /usr/local/nginx/sbin/nginx -s reload


使用不同平臺進行測試

  • 1.使用手機進行測試

Alt textMobile.jpg

  • 2.使用Chrome進行測試

Alt textChrome.jpg

  • 3.使用Firefox進行測試

Alt textFirefox.jpg

  • 4.使用IE進行測試

Alt text

IE.jpg

測試都沒有問題,我們用不同的平臺訪問同一個資源的時候,訪問到的是經過重定向之后,特定給我們這個平臺的頁面。


配置參數詳解

一. $http_user_agent

$http_user_agent是Nginx自帶的內置變量,它能夠將用戶的請求報文頭部的瀏覽器或平臺信息記錄到變量中,并輸出到訪問日志中。

二. Mobile、Chrome、like、Gecko

Nginx通過將用戶的請求報文頭部的瀏覽器或平臺信息記錄到變量中,輸出到日志的結果就是它們,即訪問者的瀏覽器或平臺信息。

1.Mobile 這個是我通過用手機訪問Nginx,查看日志后獲得的$http_user_agent對應的信息。
2.Chrome 這個是Chrome瀏覽器的。
3.like 這個是IE瀏覽器的??赡苁荖ginx版本的問題,IE的$http_user_agent信息在以前通常是MSIE,但在nginx-1.9.9版本中卻變成了like。
4.Gecko這個是Firefox瀏覽器的,同樣在以前通常是Firefox。

三. 下面是Nginx的日志信息

[root@code ~]# tail /data/logs/nginx/access.log
192.168.1.243 – – [26/Mar/2016:23:56:01 +0800] “GET / HTTP/1.1” 304 0 “-” “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36”
192.168.1.243 – – [26/Mar/2016:23:56:17 +0800] “GET / HTTP/1.1” 200 612 “-” “Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0”
192.168.1.243 – – [26/Mar/2016:23:57:04 +0800] “GET / HTTP/1.1” 200 612 “-” “Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko”
192.168.1.230 – – [26/Mar/2016:23:58:34 +0800] “GET / HTTP/1.1” 200 612 “-” “Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1”

瀏覽器或平臺信息/后面的是它的版本,同樣我們還可以根據版本進行重定向的控制,在這里我就不一一細說了。如果想知道Nginx更多的內置變量,請訪問Nginx Embedded Variables。

原創文章,作者:張小凡,如若轉載,請注明出處:http://www.www58058.com/13505

(0)
張小凡張小凡
上一篇 2016-03-27 21:34
下一篇 2016-03-27 21:49

相關推薦

  • N25第二周作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。     其常用的有: touch、stat、rm、cp、mv、install touch 命令    命令格式: touch [OPTION]… File… 命令參數: -a&n…

    Linux干貨 2016-12-12
  • Hello World

    隨筆

    Linux干貨 2018-03-26
  • HTTP響應連接介紹

    HTTP即超文本傳輸協議,web站點的實現就是基于HTTP協議得以實現。本文將詳細討論HTTP。 1. HTTP協議版本: HTTP從誕生到現在一共有如下幾個版本: HTTP 0.9:是最早的版本,為HTTP的原型版本,其功能非常簡陋; HTTP 1.0:此版本增加了很多新特性,如cache,method,MIME等,MIME的出現讓網頁不再是單純的純文本界…

    2017-05-31
  • LVM邏輯卷管理器詳解

    一、LVM簡介 LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,相當于一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對于普通的磁盤分區有很大的靈活性?!?/p>

    Linux干貨 2016-09-05
  • 4

    1;復制/etc/skel目錄為/home/tuinser1, 要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 #   install -d -m 700 /etc/skel /home/tuser1  #  &nbsp…

    Linux干貨 2017-01-16
  • 初識linux的進程管理與作業控制(第十二天)

         進程:linux中,運行每一個二制進程序或觸發每一個事件,系統都會將它定義為一個進程,并給一個進程號,稱為PID。同時依據觸發這個進程的用戶與相關屬性關系,給予這個PID一組有效的權限設置。          &nbsp…

    Linux干貨 2016-06-01

評論列表(1條)

  • stanley
    stanley 2016-03-27 21:48

    md渲染的格式吧。而且知道寫標簽和分類,非常厲害,贊 。已置頂且加入免檢產品

欧美性久久久久