API 在 url 配置参数
API configure parameters in url
我创建了一个 API 并且我使用特定的 url 获取了我的所有数据,并且通过 'id' 像这样:
'myfolder.php/1'
所以现在我尝试用一个字符串获取我的 url :
myfolder.php/mystring
在 id 的 Htacess 中,我是这样的:
RewriteRule ^[^/]+/(\d+)$ myfolder.php?id=
但我没有找到适合字符的正则表达式,我试过这样:
RewriteRule ^[^/]+/([a-z]+)$ myfolder.php?string
编辑:
如果我调用 url 'myurl.com'
,我的函数 getProducts 就会被调用。
如果我调用 'myurl.com/1'
,则调用 getProduct($id)
但是,如果我调用 'myurl.com/string'
,$_GET 为空,则调用 getProducts。
switch($request_method) {
case 'GET':
// HERE $_GET is empty if i called a string
if(!empty($_GET["id"])) {
$id= $_GET["id"];
getProduct($id);
}
else {
getProducts();
}
break;
default:
header("HTTP/1.0 405 Method Not Allowed");
break;
}
使用您显示的示例,请尝试执行以下操作。请确保在测试您的 URL 之前清除您的浏览器缓存。还要确保您的 php 文件位于您保存 htaccess 规则文件的同一文件夹中。
##Enabling RewriteEngine here.
RewriteEngine ON
##Placing conditions for non-existing requests with rewriterule to php file.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ myfolder.php/ [NC,QSA,L]
我创建了一个 API 并且我使用特定的 url 获取了我的所有数据,并且通过 'id' 像这样:
'myfolder.php/1'
所以现在我尝试用一个字符串获取我的 url :
myfolder.php/mystring
在 id 的 Htacess 中,我是这样的:
RewriteRule ^[^/]+/(\d+)$ myfolder.php?id=
但我没有找到适合字符的正则表达式,我试过这样:
RewriteRule ^[^/]+/([a-z]+)$ myfolder.php?string
编辑:
如果我调用 url 'myurl.com'
,我的函数 getProducts 就会被调用。
如果我调用 'myurl.com/1'
,则调用 getProduct($id)
但是,如果我调用 'myurl.com/string'
,$_GET 为空,则调用 getProducts。
switch($request_method) {
case 'GET':
// HERE $_GET is empty if i called a string
if(!empty($_GET["id"])) {
$id= $_GET["id"];
getProduct($id);
}
else {
getProducts();
}
break;
default:
header("HTTP/1.0 405 Method Not Allowed");
break;
}
使用您显示的示例,请尝试执行以下操作。请确保在测试您的 URL 之前清除您的浏览器缓存。还要确保您的 php 文件位于您保存 htaccess 规则文件的同一文件夹中。
##Enabling RewriteEngine here.
RewriteEngine ON
##Placing conditions for non-existing requests with rewriterule to php file.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ myfolder.php/ [NC,QSA,L]