ฉันกำลังพยายามบล็อกการเรียกใช้สคริปต์ PHP ในบางโฟลเดอร์สำหรับการติดตั้ง WordPress แต่ Nginx ทำให้ฉันลำบาก
สถานที่ = /wp/wp-includes/category.php {
ปฏิเสธทั้งหมด
}
ฉันสามารถบล็อกแต่ละสคริปต์โดยใช้การจับคู่แบบตรงทั้งหมด แต่เมื่อฉันใช้ regex มันใช้งานไม่ได้
ตำแหน่ง ~* /wp/wp-includes/.*\.php$ {
ปฏิเสธทั้งหมด
}
ฉันไม่แน่ใจว่าฉันทำอะไรผิด?
แก้ไข
ฉันมีกฎต่อไปนี้หลังจากกฎข้างต้น:
ที่ตั้ง / {
error_page 418 = @cachemiss;
# เพื่ออนุญาตให้ POST บนหน้าคงที่ จะค้นหากับฉันผิดพลาด
error_page 405 =200 $uri;
recursive_error_pages บน;
# บายพาสแคชสำหรับสตริงข้อความค้นหาทั่วไป
ถ้า ($arg_s !=" "") { ส่งคืน 418; } # การค้นหา
ถ้า ($arg_p !=" "") { ส่งคืน 418; } # ขอโพส/เพจด้วยไอดี
ถ้า ($arg_amp !=" "") { ส่งคืน 418; } # ทดสอบแอมป์
ถ้า ($arg_preview = "จริง") { กลับ 418; } # ตัวอย่างโพสต์ / หน้า
ถ้า ($http_cookie ~* "(wordpress_logged_in_|wp\-postpass_|woocommerce_items_in_cart|woocommerce_cart_hash|wptouch_switch_toogle|comment_author_|comment_author_email_)") {
กลับ 418;
}
# โดยผ่านการแคชสำหรับคำขอโพสต์
ถ้า ($request_method = POST ) {
กลับ 418;
}
ถ้า (!-f "$rocket_file") {
กลับ 418;
}
เปิดแท็ก;
try_files "$rocket_url" $uri $uri/ /index.php$is_args$args;
}
ตำแหน่ง @cachemiss {
try_files $uri $uri/ /index.php$is_args$args;
}