HTaccess Rule To Tidy Up REST API requests

前端 未结 1 608
北恋
北恋 2021-02-09 15:18

I have an API server that I am working on it currently accepts requests through $_GET variables like below

http://localhost/request.php?method=get&action=que         


        
1条回答
  •  礼貌的吻别
    2021-02-09 16:10

    This tends to be my standard answer to this kind of question, but why are you trying to do this with .htaccess rules when you could just do it in request.php, and that would be much more maintainable. Just parse the value of $_SERVER['REQUEST_URI'] in your php script.

    //not really tested, treat as pseudocode
    //doesn't remove the base url
    $params = array();
    $parts = explode('/', $_SERVER['REQUEST_URI']);
    //skip through the segments by 2
    for($i = 0; $i < count($parts); $i = $i + 2){
      //first segment is the param name, second is the value 
      $params[$parts[$i]] = $parts[$i+1];
    }
    
    //and make it work with your exsisting code
    $_GET = $params;
    

    With that in place, you should be able to request:

    http://example.com/request.php/method/get/action/query_users/id/1138ab9bce298fe35553827792794394/time/1319225314/signature/d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000
    

    Or use this simple .htaccess:

    RewriteRule ^request/ request.php
    

    And request:

    http://example.com/request/method/get/action/query_users/id/1138ab9bce298fe35553827792794394/time/1319225314/signature/d2325dedc41bd3bb7dc3f7c4fd6f081d95af1000
    

    0 讨论(0)
提交回复
热议问题