Nginx實現URL重寫

2021-09-19 20:03:17 字數 1336 閱讀 7252

本文利用nginx實現url重寫,本文使用nginx與靜態頁面配合重寫url。

結合本文場景,需要安裝nginx。

url重寫是指將乙個url請求重新寫成**可以處理的另乙個url的過程。這樣說可能不是很好理解,舉個例子來說明一下,在開發中可能經常遇到這樣的需求,比如通過瀏覽器請求的http://localhost:8080/getuser?id=1,但是需要通過seo優化等等原因,需要把請求的位址重寫為http://localhost:8080/getuser/1這樣的url,從而符合需求或者更好的被**閱讀。

當遇到這種請求的時候,就需要使用到urlrewrite重寫或者使用一些閘道器路由,如springcloud的gateway,zuul,又或者是nginx來實現這個功能。

本文介紹nginx實現url重寫。

在nginx中使用url重寫需要使用到乙個指令-----rewrite,其語法如下:

rewrite regex replacement [flag];
flag :flag標誌的作用是用於控制當匹配到對應的rewrite規則後是否繼續檢查後續的rewrite規則。

flag值為如下四種,分別是:

break:和break指令一樣,都是停止處理當前上下文中的其他重寫模組指令。

redirect:如果替換字串不以「 http://」,「 https://」或「 $scheme」 開頭,返回帶有302**的臨時重定向,瀏覽器位址會顯示跳轉後的url位址。

例如:

server
另外還可以根據if來判斷,指令如下:

if (condition)
其中condition是條件,如果為true,則執行大括號中的內容:

例如:

if ($http_user_agent ~ msie) 

測試就比較簡單了,在瀏覽器訪問http://localhost:10000/about,會自動跳轉到如圖所示。

大部分內容都是參考自nginx官網來學習的,官網的例子都很詳細。

參考自nginx官網ngx_http_rewrite_module模組官方api---傳送門。

Nginx實現URL重寫

本文利用nginx實現url重寫,本文使用nginx與靜態頁面配合重寫url。結合本文場景,需要安裝nginx。1.1 關於linux系統安裝nginx可以參考我的文章 傳送門 url重寫是指將乙個url請求重新寫成 可以處理的另乙個url的過程。這樣說可能不是很好理解,舉個例子來說明一下,在開發中...

nginx配置url重寫

url重寫是指通過配置conf檔案,以讓 的url中達到某種狀態時則定向 跳轉到某個規則,比如常見的偽靜態 301重定向 瀏覽器定向等 在配置檔案的server塊中寫,如 server server last和break的區別 因為301和302不能簡單的只返回狀態碼,還必須有重定向的url,這就是...

nginx配置url重寫

url重寫是指通過配置conf檔案,以讓 的url中達到某種狀態時則定向 跳轉到某個規則,比如常見的偽靜態 301重定向 瀏覽器定向等 在配置檔案的server塊中寫,如 server server 因為301和302不能簡單的只返回狀態碼,還必須有重定向的url,這就是return指令無法返回30...