Tôi đang cố gắng chặn thực thi tập lệnh PHP trong một vài thư mục để cài đặt WordPress nhưng Nginx đang gây khó khăn cho tôi.
vị trí = /wp/wp-gồm/category.php {
Phủ nhận tất cả;
}
Tôi có thể chặn từng tập lệnh riêng lẻ bằng cách sử dụng đối sánh chính xác nhưng khi tôi sử dụng biểu thức chính quy thì nó không hoạt động.
vị trí ~* /wp/wp-gồm/.*\.php$ {
Phủ nhận tất cả;
}
Tôi không chắc mình đang làm gì sai?
CHỈNH SỬA
Tôi có các quy tắc sau sau các quy tắc trên:
địa điểm / {
error_page 418 = @cachemiss;
# Để cho phép POST trên các trang tĩnh. Sẽ tìm kiếm với lỗi của tôi
error_page 405 =200 $uri;
đệ quy_error_pages trên;
# bỏ qua bộ đệm cho các chuỗi truy vấn phổ biến
nếu ($arg_s != "") { return 418; } # truy vấn tìm kiếm
nếu ($arg_p != "") { return 418; } # yêu cầu bài đăng / trang theo ID
if ($arg_amp != "") { return 418; } # kiểm tra amp
nếu ($arg_preview = "true") { return 418; } # xem trước bài đăng / trang
if ($http_cookie ~* "(wordpress_logged_in_|wp\-postpass_|woocommerce_items_in_cart|woocommerce_cart_hash|wptouch_switch_toogle|comment_author_|comment_author_email_)") {
trả lại 418;
}
# bằng cách vượt qua bộ nhớ đệm cho các yêu cầu bài đăng
nếu ($request_method = POST) {
trả lại 418;
}
nếu (!-f "$rocket_file") {
trả lại 418;
}
gắn thẻ vào;
try_files "$rocket_url" $uri $uri/ /index.php$is_args$args;
}
vị trí @cachemiss {
try_files $uri $uri/ /index.php$is_args$args;
}