文章詳情頁
不解的nginx rewrite規則
瀏覽:156日期:2024-06-17 10:22:07
問題描述
上圖是我根據nginx最長匹配原則 配置的簡單范例, 目的是訪問 / 的時候全部拒絕, 但訪問 /hello 的時候能進行正常跳轉. 但是返現, 訪問 /hello 依舊403, 但是重寫日志里面記錄 nginx確實匹配到了我的規則, 為何還是返回給我403呢? 求大神解惑, 不甚感激!
問題解答
回答1:location / 可以匹配到所有的請求
你可以如下修改
location = / { deny all; }
語法規則: location [=|~|~*|^~] /uri/ { … }= 開頭表示精確匹配^~ 開頭表示uri以某個常規字符串開頭,理解為匹配 url路徑即可。nginx不對url做編碼,因此請求為/static/20%/aa,可以被規則^~ /static/ /aa匹配到(注意是空格)。~ 開頭表示區分大小寫的正則匹配~* 開頭表示不區分大小寫的正則匹配!~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配 的正則/ 通用匹配,任何請求都會匹配到
回答2:因為rewrite之后的 /test00 匹配到了 location /
你應該加一個 location ~ ^/test00 并開放訪問權限
相關文章:
1. html5 - 有可以一次性把所有 css外部樣式轉為html標簽內style=" "的方法嗎?2. javascript - iframe 為什么加載網頁的時候滾動條這樣顯示?3. javascript - 如何將一個div始終固定在某個位置;無論屏幕和分辨率怎么變化;div位置始終不變4. html - vue項目中用到了elementUI問題5. sql語句 - mysql中關聯表查詢問題6. javascript - 有什么比較好的網頁版shell前端組件?7. javascript - 這不是對象字面量函數嗎?為什么要new初始化?8. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。9. javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?10. javascript - [js]為什么畫布里不出現圖片呢?在線等
排行榜
