【轉自】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