歡迎您光臨本站 註冊首頁

Nginx和Lighttpd的Rewrite差別

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Nginx和Lighttpd的Rewrite差別

簡單的說,其實沒啥差別,關鍵的一點,記住下面幾個Nginx的Flags:
last - 基本上都用這個Flag。
break - 中止Rewirte,不在繼續匹配
redirect - 返回臨時重定向的HTTP狀態302
permanent - 返回永久重定向的HTTP狀態301

另外,有個東西很關鍵,曾經折騰我好幾個小時才搞定,就是Nginx裡面配置 {m,n} 這樣的正則規則的時候,條件必須加上雙引號,否則總是報錯無法通過,官方文檔裡面真是很難找到這些東西,很暈。

補充nginx rewrite的一些參數:
正則表達式匹配,其中:
   * ~  為區分大小寫匹配
   * ~* 為不區分大小寫匹配
   * !~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配
文件及目錄匹配,其中:
   * -f和!-f用來判斷是否存在文件
   * -d和!-d用來判斷是否存在目錄
   * -e和!-e用來判斷是否存在文件或目錄
   * -x和!-x用來判斷文件是否可執行
flag標記有:
   * last 相當於Apache里的標記,表示完成rewrite,不再匹配後面的規則
   * break 與last類似
   * redirect 返回302臨時重定向
   * permanent 返回301永久重定向
一些可用的全局變數有,可以用做條件判斷(待補全)
$args
$content_length
$content_type
$document_root
$document_uri
$host
$http_user_agent
$http_cookie
$limit_rate
$request_body_file
$request_method
$remote_addr
$remote_port
$remote_user
$request_filename
$request_uri
$query_string
$scheme
$server_protocol
$server_addr
$server_name
$server_port
$uri

[火星人 ] Nginx和Lighttpd的Rewrite差別已經有617次圍觀

http://coctec.com/docs/service/show-post-16499.html