【问题标题】:Remove GET parameters in link? [duplicate]删除链接中的 GET 参数? [复制]
【发布时间】:2017-05-24 04:06:43
【问题描述】:

我有一个 API 链接,例如:

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

我想像这样访问它:

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

有可能吗?没找到。

【问题讨论】:

  • 是的,可以通过.htaccess
  • 这是我所期望的,但是怎么样?
  • 搜索.htaccess 重写网址
  • 如果您访问的是第三方 API,那么您不能这样做。如果这是您的本地 API,那么只有 .htaccess 重写规则有效
  • 在此处更新您为实现这一目标所做的(或方法)

标签: php


【解决方案1】:

如果您使用 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;
}

【讨论】:

  • @Matt Belcaustier 可以通过这种方式获取 api URL 的更改并将其使用/重定向到我们需要的位置..
  • 我不明白你为什么要创建一个新 URL + 我收到错误 500
  • 那么你想走什么方法..清除要点。您如何获取值(API URL)以及您希望通过流程实现的目标。你的问题不清楚。
  • 如果你只想重写 url,只有当你有权在该 api 服务器上编写 htaccess 代码时才有可能
  • 我想通过api.php/test/say/hi访问api.php?key=test&amp;action=say&amp;what=hi
猜你喜欢
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
  • 2014-11-06
相关资源
最近更新 更多