最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
nginxlocation匹配及rewrite規(guī)則

建站服務(wù)器 location匹配規(guī)則 1. 實例

server{
        location = \\ {
            [配置A]
        }
        location / {
            [配置B]
        }
        location = /images/ {
            [配置C]
        }
        location ^~ /static/{
            [配置D]
        }
        localtion ~* \\.(gif|jpg|png){
            [配置E]
        }
}
2. location語法規(guī)則

語法:

景寧畬族自治網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)
location  = | ~ | ~* | ^~ | @  /url/{       //注意 =、~、~*、^~ 、@是location的匹配規(guī)則,”|“表示或者
“
    ......省略其他配置
}

規(guī)則說明:

符號 含義 = 字面精準(zhǔn)匹配,如果匹配,則跳出匹配過程(不再進行正則匹配) ~ 開頭區(qū)分大小寫的正則匹配 ~* 開頭不區(qū)分大小寫的正則匹配 ^~ 開頭表示uri以某哥常規(guī)字符串開頭,理解為匹配url路徑即可 / 通用匹配,在沒有正則表達式匹配時,任何請求都會匹配到 @ 不是普通的location匹配,用于location內(nèi)部重定向的變量 ~ 開頭區(qū)分大小寫的正則匹配

多個location配置的匹配順序:

首先匹配:"=" 其次匹配:"^~" 再匹配:文件location書寫順序 最后把所有請求交給通配符("/")

注意:每次匹配成功后,停止匹配,會按照本匹配的location處理請求

按照上面實例進行說明匹配順序:

首先對比第一個location,如果匹配就會停止匹配,并按照配置A進行處理請求:
location = \\ {
    [配置A]
}
其次對比第二個location,如果匹配就會停止匹配,并按照配置D進行處理請求:
location ^~ /static/{
        [配置D]
    }
再按照順序依此進行對比,直到找到匹配的才會停止,并按照所匹配的配置*進行處理請求

如果以上無任何匹配項則會選擇通用選項,并按照所匹配的配置B進行處理請求:

location / {
        [配置B]
    }
3. 應(yīng)用舉例 精準(zhǔn)規(guī)則(=)
location = / {
    root /var/ww/html/;
}

此規(guī)則表示只匹配以默認(rèn)地址進行訪問的請求,訪問地址:http://NginxIP/

匹配url路徑(^~)
location ^~ /static/ {
    root /var/www/html/static;
}

此規(guī)則表示只匹配以" /static/ "開頭的地址進行訪問的請求,訪問地址:https://cache.yisu.com/upload/information/20200214/32/673.jpg | .gif | *.jpg "的文件,訪問地址:https://cache.yisu.com/upload/information/20200214/32/674.jpg

location ~* /Test/ {
    root /var/www/html/;
}

此規(guī)則表示匹配url地址中存在Test的訪問請求,不區(qū)分大小寫test也可以,訪問地址:http://NginxIP/test/

區(qū)分大小寫(~)
location ~ /Test/{
    root /var/www/html/;
}

此規(guī)則表示匹配url地址中存在Test的訪問請求,區(qū)分大小寫,test是進行匹配的,訪問地址:http://NginxIP/Test/

默認(rèn)匹配(所有規(guī)則都可匹配)
location / {
    root /var/www/html;
}

此規(guī)則為默認(rèn)匹配,他可以匹配所有以默認(rèn)地址訪問的鏈接,訪問地址:http://NginxIP/login.html

內(nèi)部跳轉(zhuǎn)(@)
location @index_error{
    root /var/www/error/
}

此規(guī)則表示匹配以 "/index/ "開頭的請求,如果鏈接狀態(tài)404,會匹配到這條規(guī)則

rewrite規(guī)則詳解

nginx的rewrite功能和apache一樣,rewrite的主要功能是實現(xiàn)RUL地址的重定向。Nginx的rewrite功能是由PCRE軟件支持,rewrite模塊即ngx_http_rewrite_module模塊。從某種意義上可以說為了美觀或者搜索引起的友好搜索,提高排名等

1.實例
server{
        listen 80;
        server_name www.jkyst.xyz jkyst.xyz;
        if($host != \'www.jkyst.xyz\' ){
            rewrite ^/(.*)$ http://www.jkyst.xyz/$1 permanent;
        }
        location ~.*\\.(png|gif|jpg){
            return 403;
        }
    }
2.rewrite語法規(guī)則

語法:

rewrite     regex       replacement     [flag]

rewrite:rewrite重寫的關(guān)鍵字不可省略
regex:這里寫的是正則表達式
replacement:這里是重新內(nèi)容
flag:這里是最后的flag標(biāo)記

flag標(biāo)記說明:

flag標(biāo)記 說明 last 也就是apache里的(L)標(biāo)記,表示完成rewrite,URL地址不會改變 break 本條規(guī)則匹配成功后,會停止匹配,不再匹配后面的規(guī)則,URL地址不會改變 redirect 返回302臨時重定向,瀏覽器地址會顯示跳轉(zhuǎn)后的URL地址 permanent 返回301永久重定向,瀏覽器地址欄顯示跳轉(zhuǎn)后的URL地址,Nginx返回response狀態(tài)碼301

相關(guān)符號說明:

符號 說明 * 代表前面0或者多個字符 + 代表前面1或者多個字符 ? 代表前面0或1個字符 ^ 代表字符串的開始位置 $ 代表字符串結(jié)束位置 $n 代表字符串結(jié)束第n個參數(shù) . 通配符,代表任何字符 3.應(yīng)用實例 多域名跳轉(zhuǎn)到同一域名
server{
    listen 80;
    server_name www.jkyst.xyz jkyst.xyz abc.jkyst.xyz;
    if($host != \'www.jkyst.xyz\'){
        rewrite ^/(.*)$ http://www,jkyst.xyz/$1 permanent;
    }
}

當(dāng)訪問 "abc.jkyst.xyz" 時會自動跳轉(zhuǎn)到 "www.jkyst.xyz",這里出現(xiàn) "if" 語句用于判斷,判斷結(jié)果為true則執(zhí)行語句內(nèi)部的 rewrite重寫

當(dāng)文件不存在時重定向到指定文件
server{
    listen 80;
    server_name www.jkyst.xyz;
    if(!-e $request_filename){
        rewrite  ^/test/(.*)$ http://www.jkyst.xyz/test1/$1 permanent;
    }
}

當(dāng)訪問 "test" 目錄下的文件或目錄不存在時,則跳轉(zhuǎn)到 "test1"下面的此文件或者目錄,跳轉(zhuǎn)后會將URL進行轉(zhuǎn)換

server{
    listen 80;
    server_name www.jkyst.xyz;
    if(!-e $request_filename){
        rewrite ^/test/(.*)$ index.html last;
    }
}

表示當(dāng)訪問 "test" 目錄下的文件或目錄不存在時,則重定向到 "index.html"文件,跳轉(zhuǎn)后URl不會進行轉(zhuǎn)換

server{
        listen 80;
        server_name www.jkyst.xyz;
        if(!-e $request_filename){
            rewrite ^/test/([0-9a-z]+)/([0-9a-z]+)/(.*)$ http://www.jkyst.xyz/test/$1$2$3 permanent;
        }
}

目錄切換,表示將原目錄轉(zhuǎn)換成其他目錄,【0-9a-z】表示轉(zhuǎn)換后目錄名稱

禁止訪問.sh后綴的文件
server{
......其他配置
location ~.*\\.(sh)${
    return 405;
}
}

表示當(dāng)訪問 "*.sh"的文件就會返回405錯誤

匹配用戶瀏覽器代理信息
server{
    listen 80;
    server_name www.jkyst.xyz;
    if ( $http_user_agent ~* (Android)|(iPhone)){
        rewrite ^/test/(.*)$ http://www.jkyst.xyz/test/$1  permanent;
    }
}

表示當(dāng)匹配到瀏覽代理為Android和iPhone時進行重定向 "test"目錄下的文件,改變訪問的地址

禁止htaccess
server{
    location ~//.ht {
         deny all;
       }
   }
4.文件目錄匹配 參數(shù) 介紹 -f 判斷文件是否存在 返回值true為存在 !-f 判斷文件是否存在 返回值false為不存在 -d 判斷目錄是否存在 返回值true為存在 !-d 判斷目錄是否存在 返回值true為不存在 -e 判斷文件或目錄是否存在 返回值true為存在 !-e 判斷文件或目錄是否存在 返回值true為不存在 -x 判斷文件是否可執(zhí)行 返回值true為可執(zhí)行 !-x 判斷文件是否可執(zhí)行 返回值true為不可執(zhí)行

舉例說明:

server{
        listen 80;
        server_name www.jkyst.xyz;
        if(!-e $request_filename){
            rewrite  ^/test/(.*)$ http://www.jkyst.xyz/test1/$1 permanent;
        }
    }

判斷文件或目錄是否存在


新聞標(biāo)題:nginxlocation匹配及rewrite規(guī)則
本文網(wǎng)址:http://fisionsoft.com.cn/article/chdhsj.html