不解的nginx rewrite規則
習慣沉默
習慣沉默 2017-05-27 17:45:03
0
2
816

#上圖是我根據nginx最長匹配原則配置的簡單範例, 目的是訪問/ 的時候全部拒絕, 但訪問/hello 的時候能進行正常跳轉. 但是返現, 訪問/hello 依舊403, 但是重寫日誌裡面記錄nginx確實匹配到了我的規則, 為何還是返回給我403呢? 求大神解惑, 不甚感激!

習慣沉默
習慣沉默

全部回覆(2)
刘奇

location / 可以配對到所有的請求

你可以如下修改

 location = / {
    deny all;
 }

語法規則: location [=|~|~*|^~] /uri/ { … }
= 開頭表示精確符合
^~ 開頭表示uri以某個常規字串開頭,理解為符合 url路徑即可。 nginx不會對url做編碼,因此請求為/static/20%/aa,可以被規則^~ /static/ /aa匹配到(注意是空格)。
~ 開頭表示區分大小寫的正規匹配
~* 開頭表示不區分大小寫的正則匹配
!~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配的正則
/ 通用匹配,任何請求都會匹配到

曾经蜡笔没有小新

因為rewrite之後的 /test00 匹配到了 location /

你應該加上一個 location ~ ^/test00 並開放存取權

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!