gpt4 book ai didi

php - 整理 REST API 请求的 Htaccess 规则

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

我有一个正在使用的 API 服务器,它目前通过 $_GET 变量接受请求,如下所示

http://localhost/request.php?method=get&action=query_users&id=1138ab9bce298fe35553827792794394&time=1319225314&signature=d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000

我需要帮助创建一个 HTAccess 规则,该规则可以读取将“&”替换为“/”以及“=”和“?”的网址使用“/”创建一个干净的 url,如

http://localhost/request/method/get/action/query_users/id/1138ab9bce298fe35553827792794394/time/1319225314/signature/d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000

有什么方法可以做到这一点,同时仍然保持 get 参数完好无损以使 api 正常工作?

此外,这不是唯一的请求,还会有不同的请求。

Stackoverflow 始终是寻求专家建议的地方,在此先感谢

最佳答案

这往往是我对这类问题的标准答案,但是你为什么要尝试使用 .htaccess 规则来做这件事,而你可以在 request.php,这将更易于维护。只需在您的 php 脚本中解析 $_SERVER['REQUEST_URI'] 的值即可。

//not really tested, treat as pseudocode
//doesn't remove the base url
$params = array();
$parts = explode('/', $_SERVER['REQUEST_URI']);
//skip through the segments by 2
for($i = 0; $i < count($parts); $i = $i + 2){
//first segment is the param name, second is the value
$params[$parts[$i]] = $parts[$i+1];
}

//and make it work with your exsisting code
$_GET = $params;

有了它,您应该能够请求:

http://example.com/request.php/method/get/action/query_users/id/1138ab9bce298fe35553827792794394/time/1319225314/signature/d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000

或者使用这个简单的.htaccess:

RewriteRule ^request/ request.php

并要求:

http://example.com/request/method/get/action/query_users/id/1138ab9bce298fe35553827792794394/time/1319225314/signature/d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000

关于php - 整理 REST API 请求的 Htaccess 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7854420/

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