Tôi đang cố viết một phần còn lại trong php bằng cách sử dụng mod_rewrite.mod_rewrite: Cách chuyển hướng DELETE HTTP và PUT
Câu hỏi của tôi là: Làm cách nào để xử lý HTTP DELETE và PUT? Ví dụ: url sẽ là: /book/1234
trong đó 1234 là id duy nhất của sách. Tôi muốn "chuyển hướng" id này (1234) đến book.php với id là tham số. Tôi đã biết cách đọc các biến PUT và DELETE trong tập lệnh php, nhưng làm cách nào để thiết lập các quy tắc viết lại này trong mod_rewrite?
Bất kỳ ý tưởng nào?
Edit: Nguyên tắc viết lại cho một GET sẽ trông như thế này:
RewriteRule book/([0-9]+) book.php?id=$1 [QSA]
Làm thế nào để làm điều này "tham số chuyển tiếp" cho PUT và DELETE? Theo như tôi biết HTTP POST, PUT và DELETE sử dụng HTTP Request Body để truyền các giá trị tham số. Vì vậy, tôi đoán tôi cần phải nối thêm các tham số trong cơ thể yêu cầu HTTP. Nhưng tôi không có ý tưởng làm thế nào để làm điều đó với mod_rewrite.
Tôi có thể thực hiện một số loại trộn DELETE và GET không?
RewriteCond %{REQUEST_METHOD} =DELETE
RewriteRule book/([0-9]+) book.php?id=$1 [QSA]
Sau đó, trong book.php tôi sẽ sử dụng $ _GET [ 'id'] để lấy id cuốn sách, ngay cả khi HEADER HTTP nói rằng phương thức HTTP là DELETE. Có vẻ như không hoạt động ...
Bạn có thể sử dụng 'Tập lệnh PUT ...' hoặc RewriteCond trên '% {REQUEST_METHOD}' – mario