gpt4 book ai didi

php - mod_rewrite : How to redirect HTTP DELETE and PUT

转载 作者:可可西里 更新时间:2023-11-01 13:18:00 25 4
gpt4 key购买 nike

我正在尝试使用 mod_rewrite 在 php 中编写一些 rest api。

我的问题是:如何处理 HTTP DELETE 和 PUT?例如,网址为:/书/1234

其中 1234 是一本书的唯一 ID。我想使用 id 作为参数将此 id (1234) “重定向”到 book.php。我已经知道如何在 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。好像不行……

最佳答案

RewriteCond 指令可用。您可以使用它来指定以下规则仅在特定条件下有效。如果您想通过 HTTP 请求方法重写,请像这样使用它:

RewriteCond %{REQUEST_METHOD} =PUT
RewriteRule ^something\/([0-9]+)$ put.php?id=$1

RewriteCond %{REQUEST_METHOD} =DELETE
RewriteRule ^something\/([0-9]+)$ delete.php?id=$1

# ...

关于php - mod_rewrite : How to redirect HTTP DELETE and PUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14842381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com