我正在尝试用php开发REST API,我在php文件中获取API令牌时遇到了问题,但当我请求URL时,它被认为是文件夹目录!有什么方法可以解决这个问题吗?
我调用的e. p. URL:
https://example.com/v1/6A4C426B70634E6D3831785155304F566C6359636167485079494C56624C4C524B686136374E6F6D4D51453D/
注意:这是API内标识:60694E6D3831785155304F566C6359636167485079494C56624C4C524B686136374E6F6D4D51453D
在我的index.php在“v1”文件夹中:
<?php
//get verify vals
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on')
$url = "https://";
else
$url = "http://";
// Append the host(domain name, ip) to the URL.
$url.= $_SERVER['HTTP_HOST'];
// Append the requested resource location to the URL
$url.= $_SERVER['REQUEST_URI'];
echo $url;
var_dump(parse_url($url, PHP_URL_PATH));
?>
谢谢
我试着学习标题!
1条答案
按热度按时间9lowa7mx1#
实现这一点的最简单的方法是在服务器的根目录下创建一个.htaccess文件,并在其中添加以下重写规则:
然后,在index.php文件中,您将在$_GET ['version']变量中获得版本号,并在$_GET ['token']变量中获得令牌。
因为您显然希望预期API的不同版本,所以也可以这样做:
在这种情况下,您只能访问$_GET ['token']变量中的令牌,get变量中的版本号是无用的,因为您会将v1、v2等的代码或API分隔在两个不同的文件中。
如果你不知道这些特殊的字符链是什么,它们被称为“Regex”,我鼓励你阅读/观看关于它的教程,你可以在Apache、PHP、JavaScript等许多语言中使用它们,它们是识别简单到复杂字符串模式的好方法。