Score:0

Nginx บล็อกการเข้าถึงไฟล์บางประเภท (เช่น .txt)

ธง gb

เป้าหมายของฉัน: บล็อกคำขอใด ๆ ที่ร้องขอประเภทไฟล์เหล่านี้:

{ชื่อสุ่ม{.txt
.md
.git

หากผู้ใช้พยายามเข้าถึงไฟล์ประเภท "ถูกบล็อก" ใด ๆ ฉันต้องการส่งคืน HTTP 404 สิ่งนี้ควรเกิดขึ้นใน ทั้งหมด โฟลเดอร์ ไม่ใช่แค่โฟลเดอร์รูท

รหัสเซิร์ฟเวอร์ของฉันจนถึงตอนนี้

เซิร์ฟเวอร์ {
        ฟัง 80 default_server;
        ฟัง [::]:80 default_server;
        รูท / ฟอรั่ม;
        ดัชนี index.php;
        server_name forum.example.net;
        ที่ตั้ง / {
                try_files $uri $uri/ =404;
        }
        ตำแหน่ง ~ \.php$ {
                รวมตัวอย่าง/fastcgi-php.conf;
                fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
        }
        ตำแหน่ง ~ /\.ht {
                ปฏิเสธทั้งหมด
        }
        ตำแหน่ง ~ \.md {
        ปฏิเสธทั้งหมด
        กลับ 404;
        }
        ตำแหน่ง ~ /\.txt {
        ปฏิเสธทั้งหมด
        กลับ 404;
        }
        ตำแหน่ง ~ /\.git {
        ปฏิเสธทั้งหมด
        กลับ 404;
        }
}

เมื่อฉันพยายามไปที่ url: /folder/test.md

มันดาวน์โหลดและไม่ส่งปฏิเสธทั้งหมดซึ่งฉันต้องการบล็อก

ฉันจะทำสิ่งนี้ได้อย่างไร

bocian85 avatar
cn flag
ลองใส่บล็อคดูก่อนครับ ที่ตั้ง / { try_files $uri $uri/ =404; } ลบ / ก่อน \.filetype ด้วย เพราะมันจะจับคู่เฉพาะ url เช่น something/subdir/.txt
Michael Hampton avatar
cz flag
ทำไมถึงมี 'ปฏิเสธทั้งหมด' ในนั้น?
Score:0
ธง gb

บล็อกประเภทไฟล์:

.md
.git
{อะไรก็ได้}.txt

เพิ่มในบล็อกเซิร์ฟเวอร์:

ตำแหน่ง ~\.(git|txt|md)$ {
 ปฏิเสธ;
 404;
}

หากผู้ใช้เข้าถึง /folder/1.txt 1.txt จะกลับมามี HTTP 404

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา