Gambar di atas adalah contoh mudah yang saya konfigurasikan berdasarkan prinsip padanan terpanjang nginx Tujuannya adalah untuk menafikan semua akses kepada /, tetapi untuk dapat melompat secara normal apabila mengakses /hello, ia masih kembali 403, tetapi ia ditulis semula rekod yang nginx memang sepadan dengan peraturan saya. Mengapa ia masih mengembalikan 403 kepada saya?
lokasi / boleh sepadan dengan semua permintaan
Anda boleh mengubah suainya seperti berikut
Peraturan tatabahasa: lokasi [=|~|~*|^~] /uri/ { … }
= Permulaan bermaksud padanan yang tepat
^~ Permulaan bermaksud uri bermula dengan rentetan biasa, yang boleh difahami sebagai padanan laluan url. nginx tidak mengekod URL, jadi permintaannya adalah /static/20%/aa, yang boleh dipadankan dengan peraturan ^~ /static/ /aa (perhatikan ruang). Permulaan
~ menunjukkan padanan biasa sensitif huruf besar dan kecil
~* Permulaan menunjukkan padanan biasa tidak peka huruf besar dan kecil
!~ dan !~* masing-masing adalah padanan biasa tidak sensitif huruf besar dan tidak sensitif huruf besar tidak sepadan
/ padanan universal , Sebarang permintaan akan dipadankan
Kerana /test00 selepas menulis semula padanan lokasi /
Anda harus menambah lokasi ~ ^/test00 dan dayakan akses