不解的nginx rewrite規(guī)則
問題描述
上圖是我根據(jù)nginx最長(zhǎng)匹配原則 配置的簡(jiǎn)單范例, 目的是訪問 / 的時(shí)候全部拒絕, 但訪問 /hello 的時(shí)候能進(jìn)行正常跳轉(zhuǎn). 但是返現(xiàn), 訪問 /hello 依舊403, 但是重寫日志里面記錄 nginx確實(shí)匹配到了我的規(guī)則, 為何還是返回給我403呢? 求大神解惑, 不甚感激!
問題解答
回答1:location / 可以匹配到所有的請(qǐng)求
你可以如下修改
location = / { deny all; }
語法規(guī)則: location [=|~|~*|^~] /uri/ { … }= 開頭表示精確匹配^~ 開頭表示uri以某個(gè)常規(guī)字符串開頭,理解為匹配 url路徑即可。nginx不對(duì)url做編碼,因此請(qǐng)求為/static/20%/aa,可以被規(guī)則^~ /static/ /aa匹配到(注意是空格)。~ 開頭表示區(qū)分大小寫的正則匹配~* 開頭表示不區(qū)分大小寫的正則匹配!~和!~*分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配 的正則/ 通用匹配,任何請(qǐng)求都會(huì)匹配到
回答2:因?yàn)閞ewrite之后的 /test00 匹配到了 location /
你應(yīng)該加一個(gè) location ~ ^/test00 并開放訪問權(quán)限
相關(guān)文章:
1. python - (初學(xué)者)代碼運(yùn)行不起來,求指導(dǎo),謝謝!2. 為什么python中實(shí)例檢查推薦使用isinstance而不是type?3. mysql里的大表用mycat做水平拆分,是不是要先手動(dòng)分好,再配置mycat4. window下mysql中文亂碼怎么解決??5. sass - gem install compass 使用淘寶 Ruby 安裝失敗,出現(xiàn) 4046. html5 - H5 SSE的本質(zhì)是什么?7. javascript - h5上的手機(jī)號(hào)默認(rèn)沒有識(shí)別8. python - 獲取到的數(shù)據(jù)生成新的mysql表9. python的文件讀寫問題?10. javascript - js 對(duì)中文進(jìn)行MD5加密和python結(jié)果不一樣。
