#上圖是我根據nginx最長匹配原則配置的簡單範例, 目的是訪問/ 的時候全部拒絕, 但訪問/hello 的時候能進行正常跳轉. 但是返現, 訪問/hello 依舊403, 但是重寫日誌裡面記錄nginx確實匹配到了我的規則, 為何還是返回給我403呢? 求大神解惑, 不甚感激!
怪我咯2017-05-27 17:47:03
location / 可以配對到所有的請求
你可以如下修改
location = / {
deny all;
}
語法規則: location [=|~|~*|^~] /uri/ { … }
= 開頭表示精確符合
^~ 開頭表示uri以某個常規字串開頭,理解為符合 url路徑即可。 nginx不會對url做編碼,因此請求為/static/20%/aa,可以被規則^~ /static/ /aa匹配到(注意是空格)。
~ 開頭表示區分大小寫的正規匹配
~* 開頭表示不區分大小寫的正則匹配
!~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配的正則
/ 通用匹配,任何請求都會匹配到
曾经蜡笔没有小新2017-05-27 17:47:03
因為rewrite之後的 /test00 匹配到了 location /
你應該加上一個 location ~ ^/test00 並開放存取權