nginx 中 rewrite 實現 二級域名、三級域名、泛域名、路徑的重寫

【轉自】Nginx泛域名解析及Rewrite重定向普通頁面及帶參數的頁面


原本準備換Linux服務器,所以數據遷移暫時需要使用靜態頁面臨時代替一下,之前的article.asp?id=xxx都要重定向到靜態文件 article/xxx.htm,nginx的rewrite比apache的強大很多,還可以用if語句,很容易理解,下面看看Nginx是如何進行Rewrite的!

 

提示:以下rewrite指令寫在 nginx.conf 配置的 server { ... } 中

 

最常見的: 靜態地址重定向到帶參數的動態地址




反過來: 帶參數的動態地址重定向到靜態地址

 

 

泛域名解析

注意:if () {} 之間需要空格,否則Nginx.conf會報unknow directive 錯誤!

參考:

Nginx Rewrite Flags
* last 相當於Apache裏的[L]標記,表示完成rewrite
* break 終止匹配, 不再匹配後面的規則
* redirect 返回302臨時重定向
* permanent 返回301永久重定向

Nginx正則表達式匹配
* ~ 爲區分大小寫匹配
* ~* 爲不區分大小寫匹配
* !~和!~*分別爲區分大小寫不匹配及不區分大小寫不匹配

Nginx文件及目錄匹配
* -f和!-f用來判斷是否存在文件
* -d和!-d用來判斷是否存在目錄
* -e和!-e用來判斷是否存在文件或目錄
* -x和!-x用來判斷文件是否可執行

Nginx全局變量

 

參考:

http://www.v-ec.com/dh20156/article.asp?id=263

http://wiki.nginx.org/NginxHttpRewriteModule
http://www.afen.cn/blog/?p=240

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章