Php 删除链接中的GET参数?

Php 删除链接中的GET参数?,php,Php,我有一个API链接,如: www.mydomain.com/api.php?key=test&action=say&what=hi 我想访问它,就像: www.mydomain.com/api.php/test/say/hi 可能吗?我没有找到。如果您正在使用php修改API url,那么您可以使用下面的函数 <?php //Suppose we have URL in string format //$apiLink = 'www.mydomain.com/api.php?key=tes

我有一个API链接,如:

www.mydomain.com/api.php?key=test&action=say&what=hi

我想访问它,就像:

www.mydomain.com/api.php/test/say/hi


可能吗?我没有找到。

如果您正在使用php修改API url,那么您可以使用下面的函数

<?php
//Suppose we have URL in string format
//$apiLink = 'www.mydomain.com/api.php?key=test&action=say&what=hi';

//if we doesn't know, or it will be dynamic all times getting from browser
$apiLink = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$sendNewUrl = makeNewURL($apiLink);
header("location: ".$sendNewUrl);

function makeNewURL($apiLink){
    $totalParams = "";
    $apiData = explode("?",$apiLink);
    $apiParameters = explode("&",$apiData[1]);
    if(count($apiParameters)>0){
        foreach($apiParameters as $params){
            if(strpos($params, '=') !== false){
                $expected = explode("=",$params);
                $totalParams .= $expected[1];
                if($totalParams!=""){
                    $totalParams .= "/";
                }
            }
        }
    }
    return $apiData[0]."/".$totalParams;
}

是的,可以通过
.htaccess
实现。这正是我所期望的,但是如何实现呢?搜索.htaccess rewrite url如果您正在访问的是第三方Api,那么您不能这样做。如果这是您的本地API,则只有
.htaccess
重写规则将在此处更新您所做的(或方法)达到this@MattBelcaustier可以通过这种方式获得api URL的更改,并将其使用/重定向到我们需要的位置..我不明白您为什么要创建新URL+我收到一个错误,那么您想采用什么方法。。澄清问题。如何获取值(API URL)以及您希望通过流程实现什么。你的问题不清楚。如果你想只重写url,只有当你有权在api服务器上编写htaccess代码时才有可能。我想通过
api.php/test/say/hi
访问
api.php?key=test&action=say&what=hi