Tôi đang cố gắng thiết lập một số điều khiển trong Apache thông qua .htaccess. Những công việc này:
<LimitExcept GET>
Order allow,deny
Allow from all
Deny from all
</LimitExcept>
trong khi điều này không:
<LimitExcept POST>
Order allow,deny
Allow from all
Deny from all
</LimitExcept>
Xin hãy giúp tôi hiểu những gì đang xảy ra ở đây.
Trường hợp thử nghiệm ví dụ:
Tôi đã tạo một biểu mẫu HTML đơn giản (form.html) để kiểm tra mọi thứ:
<form method="post" action="./test/index.html">
<input type="submit" name="submit" value="submit" />
</form>
Cùng với đó, tôi đã tạo một thư mục con "thử nghiệm" với hai tệp:
- index.html (<p>Chào thế giới</p>)
- .htaccess (có nội dung chính xác như một trong các khối mã ở trên)
Trong trường hợp phiên bản đầu tiên của tệp .htaccess, việc gửi biểu mẫu HTML sẽ tạo ra lỗi 403, trong khi quyền truy cập trực tiếp (nhập địa chỉ đầy đủ vào trình duyệt - ví dụ: /test/index.html) không bị chặn. Đây là như mong đợi. Tuy nhiên, trong trường hợp phiên bản thứ hai của tệp .htaccess, cả việc gửi biểu mẫu HTML VÀ truy cập trực tiếp đều dẫn đến lỗi 403.
Tôi không nghĩ đây là một lỗi (đã thử nghiệm trong Apache 2.2 và 2.4), nhưng biết rằng những người khác có thể sao chép nó sẽ khá hữu ích. Tất nhiên, cuối cùng tôi muốn hiểu tại sao mọi thứ không hoạt động như dự định.