ngx_http_rewrite_module模塊

The ngx_http_rewrite_module module is used tochange request URI using PCRE regular expressions,return redirects, and conditionally select configurations.-->將用戶請求的URI基於PCRE regex所描述的模式進行檢查,而後完成重定向替換

示例:

    http://www.magedu.com/hn--> http://www.magedu.com/henan

    http://www.magedu.com--> https://www.magedu.com/

1、rewrite regex replacement [flag]

    將用戶請求的URI基於regex所描述的模式進行檢查,匹配到時將其替換爲replacement指定的新的URI注意:如果在同一級配置塊中存在多個rewrite規則,那麼會自下而下逐個檢查;被某條件規則替換完成後,會重新一輪的替換檢查隱含有循環機制,但不超過10次;如果超過,提示500響應碼,[flag]所表示的標誌位用於控制此循環機制如果replacement是以http://或https://開頭,則替換結果會直接以重向返回給客戶端301:永久重定向

    [flag]:

        last:重寫完成後停止對當前URI在當前location中後續的其它重寫操作,而後對新的URI啓動新一輪重寫檢查;提前重啓新一輪循環,不建議在lation中使用

        break:重寫完成後停止對當前URI在當前location中後續的其它重寫操作,而後直接跳轉至重寫規則配置塊之後的其它配置;結束循環,建議在location中使用

        redirect:臨時重定向,重寫完成後以臨時重定向方式直接返回重寫後生成的新URI給客戶端,由客戶端重新發起請求;不能以http://或https://開頭,使用相對路徑,狀態碼:302

        permanent:重寫完成後以永久重定向方式直接返回重寫後生成的新URI給客戶端,由客戶端重新發起請求,狀態碼:301

2、return 停止處理,並返回給客戶端指定的響應碼

    return code [text];

    return code URL;

    return URL;

3、rewrite_log on | off;

    是否開啓重寫日誌, 發送至error_log(notice level)

4、set $variable value;用戶自定義變量

注意:變量定義和調用都要以$開頭

5、if (condition) { ... }('{}'必須加上)

引入新的上下文,條件滿足時,執行配置塊中的配置指令;server, location

condition:

    比較操作符:

        == 相同

        != 不同

        ~:模式匹配,區分字符大小寫

        ~*:模式匹配,不區分字符大小寫

        !~:模式不匹配,區分字符大小寫

        !~*:模式不匹配,不區分字符大小寫

    文件及目錄存在性判斷:

        -e, !-e 存在(包括文件,目錄,軟鏈接)

        -f, !-f 文件

        -d, !-d 目錄

        -x, !-x 執行

    

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