国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

nginx重寫rewrite基礎及實例分享

2024-08-30 12:26:07
字體:
來源:轉載
供稿:網友

nginx rewrite 正則表達式匹配

大小寫匹配

~ 為區分大小寫匹配
~* 為不區分大小寫匹配
!~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配

文件及目錄匹配

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

flag標記

last 相當于Apache里的[L]標記,表示完成rewrite
break 終止匹配, 不再匹配后面的規則。
redirect 返回302臨時重定向 地址欄會顯示跳轉后的地址。
permanent 返回301永久重定向 地址欄會顯示跳轉后的地址。

 
logcation的幾個使用實例:

   1)location  / { }:匹配任何查詢,因為所有請求都以 / 開頭。但是正則表達式規則將被優先和查詢匹配。
   2)location =/ {}:僅僅匹配/
   3)location ~* /.(gif|jpg|jpeg)$

     {
        rewrite /.(gif|jpg)$ /logo.png;
     }:location不區分大小寫,匹配任何以gif,jpg,jpeg結尾的文件。

幾個實例:

多目錄轉成參數
要求:abc.domian.com/sort/2 => abc.domian.com/index.php?act=sort&name=abc&id=2
規則配置:
代碼如下:
if ($host ~* (.*)/.domain/.com) {
    set $sub_name $1;
    rewrite ^/sort//(/d+)//?$ /index.php?act=sort&cid=$sub_name&id=$1 last;
}

目錄對換
要求:/123456/xxxx -> /xxxx?id=123456
規則配置:
rewrite ^/(/d+)/(.+)/ /$2?id=$1 last;
 
再來一個針對瀏覽器優化的自動rewrite,這里rewrite后的目錄可以是存在的;
例如設定nginx在用戶使用ie的使用重定向到/nginx-ie目錄
規則如下:
代碼如下:
 if ($http_user_agent ~ MSIE) {
     rewrite ^(.*)$ /nginx-ie/$1 break;
}

目錄自動加“/” ,這個功能一般瀏覽器自動完成
代碼如下:
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}

以下這些可能就跟廣義的rewrite重寫無關了

禁止htaccess
代碼如下:
location ~//.ht {
    deny all;
}
[code]
禁止多個目錄
[code]
location ~ ^/(cron|templates)/ {
    deny all; break;
}

禁止以/data開頭的文件,可以禁止/data/下多級目錄下.log.txt等請求
代碼如下:
location ~ ^/data {
    deny all;
}

禁止單個文件
代碼如下:
location ~ /data/sql/data.sql {
    deny all;
}

給favicon.ico和robots.txt設置過期時間; 這里為favicon.ico為99天,robots.txt為7天并不記錄404錯誤日志

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广元市| 苗栗市| 丹凤县| 体育| 怀化市| 盐亭县| 永清县| 乐至县| 永济市| 萍乡市| 汉沽区| 大洼县| 新巴尔虎右旗| 同心县| 东丽区| 施甸县| 德保县| 鄱阳县| 盘锦市| 东乌| 神农架林区| 永善县| 颍上县| 汉阴县| 伊通| 玛纳斯县| 遂平县| 绿春县| 青铜峡市| 中阳县| 宁城县| 普安县| 平武县| 胶南市| 唐山市| 乐清市| 东辽县| 和硕县| 买车| 盐池县| 武胜县|