nginx rewrite 實現URL跳轉

2021-07-24 12:56:14 字數 814 閱讀 8228

最近工作中常常要改nginx配置,學習了nginx中rewrite的用法

這裡說的url跳轉就是使用者在訪問乙個url時將其跳轉到另乙個url上。

常見的應用場景是讓多個網域名稱跳轉到同乙個url上,(例如讓舊網域名稱跳轉到新網域名稱上)

將靜態檔案請求跳轉到cdn上等

根據使用者裝置跳轉到不同站點(pc版,wap版)等。

url跳轉可以通過js在頁面上設定的window.location實現

也可以通過php設定header來實現

當然也可以用nginx 的 rewrite功能實現rewrite 是 nginx的靜態重寫模組

基本用法是 rewrite patten replace flag

patten是正規表示式,與patten匹配的url會被改寫為replace,flag可選

例如將舊網域名稱跳轉到新網域名稱上

server

跳轉到新網域名稱上時保留路徑

server

rewrite與location配合實現檔案跳轉到cdn

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
rewrite 後面可以加flag,flag標記有:

last 相當於apache裡的[l]標記,表示完成rewrite

break 終止匹配, 不再匹配後面的規則

redirect 返回302臨時重定向 位址列會顯示跳轉後的位址

permanent 返回301永久重定向 位址列會顯示跳轉後的位址

使用lua實現nginx rewrite

上一次上線只是簡單的把手機端的流量切換手機端的首頁,有點粗糙,現在需要把電腦端相應的頁面切換到電腦端的頁面,直接用nginx自帶的rewrite不太好做,所以用lua做 下面開始 nginx 配置 location mobile.lua 手機訪問重定向到移動版 end其實邏輯也很簡單,主要在ngin...

使用lua實現nginx rewrite

上一次上線只是簡單的把手機端的流量切換手機端的首頁,有點粗糙,現在需要把電腦端相應的頁面切換到電腦端的頁面,直接用nginx自帶的rewrite不太好做,所以用lua做 下面開始 nginx 配置 location mobile.lua 手機訪問重定向到移動版 end其實邏輯也很簡單,主要在ngin...

Nginx Rewrite 實現匹配泛網域名稱規則

nginx 是乙個高效能的 http 和 反向 伺服器,也是乙個 imap pop3 smtp 伺服器。nginx 是由 igor sysoev 為俄羅斯訪問量第二的 rambler.ru 站點開發的,它已經在該站點執行超過兩年半了。igor 將源 以類 bsd 許可證的形式發布 1 為了確保能在 ...