国产探花免费观看_亚洲丰满少妇自慰呻吟_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錯誤日志

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂平市| 望谟县| 岳阳市| 龙陵县| 贵州省| 咸宁市| 绩溪县| 来宾市| 阿瓦提县| 七台河市| 那坡县| 慈利县| 松阳县| 安徽省| 临沧市| 招远市| 彰武县| 绿春县| 滦南县| 浦北县| 云阳县| 青神县| 大连市| 山东省| 蓝田县| 珲春市| 连州市| 澄城县| 清原| 尉犁县| 改则县| 嘉黎县| 上高县| 永康市| 新绛县| 印江| 抚宁县| 洛浦县| 疏附县| 牟定县| 宕昌县|