我试图通过使用 mod_rewrite 在 php 中编写一点休息 api。
我的问题是:如何处理 HTTP DELETE 和 PUT?例如,网址为:/book/1234
其中 1234 是一本书的唯一 ID。我想将此id(1234)“重定向”到book.php,并将id作为参数。我已经知道如何在 php 脚本中读取 PUT 和 DELETE 变量,但是如何在 mod_rewrite 中设置这个重写规则呢?
有任何想法吗?
编辑: GET 的重写规则如下所示:
RewriteRule book/([0-9]+) book.php?id=$1 [QSA]
如何为 PUT 和 DELETE 执行此“参数转发”?据我所知,HTTP POST、PUT 和 DELETE 使用 HTTP 请求正文来传输参数值。所以我想我需要在 HTTP 请求正文中附加参数。但我不知道如何用 mod_rewrite 做到这一点。
我可以混合使用 DELETE 和 GET 吗?
RewriteCond %{REQUEST_METHOD} =DELETE
RewriteRule book/([0-9]+) book.php?id=$1 [QSA]
然后在 book.php 中,我将使用 $_GET['id'] 来检索图书 ID,即使 HTTP HEADER 说 HTTP METHOD 是 DELETE。它似乎不起作用......