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]