通过.htaccess和PHP来美化API的URL

时间:2017-07-05 11:30:59

标签: php .htaccess api


请考虑我正在请求此URL以获取JSON api响应。

// url that user will type in the browser address bar   
example.com/api/user/0001

我有两个选项:

选项A

重定向将是这样的。但是浏览器中的地址与以前一样。

example.com?get1=api&get2=user&get3=0001
  

?get1=xxxxxx&get2=xxxxxx并且是重要的。如果网址中有更多的斜杠(/),则会添加更多GET请求,例如&get4=xxxxx &get5=xxxxx,等等。

然后我将从$_GET['reques']这样的方法获得确切的信息!

$var_request = $_GET['get1'];
$var_type    = $_GET['get2'];
$var_id      = $_GET['get3'];



选项B

重定向将是这样的。但是浏览器中的地址与以前一样。

example.com?request=api/user/0001

然后我会通过像这样的api/user/0001爆炸来获得确切的信息

// Geting request by $_GET
$request = $_GET['request'];

// Exploding by the (/)
$api = explode("/", $request);

// Getting my desired information
$var_request = $api[0];
$var_type    = $api[1];
$var_id      = $api[2];



  

请记住:网址与之前相同。它应该看起来不像?get=。该网址在浏览器网址栏中仍应为example.com/api/user/0001

1 个答案:

答案 0 :(得分:1)

我认为选项B 会更容易做到这一点。可能的解决方案是 -

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)$ ?request=$1 [L]

重定向 - example.com/api/user/0001example.com?request=api/user/0001而不更改浏览器中网址栏中的地址。