2017-07-05 78 views
1


請考慮我正在請求此URL以獲取JSON API響應。通過.htaccess和PHP美化API的URL

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

我有2個選項:


選項A

重定向會是這樣。但瀏覽器中的地址與以前一樣。

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

?get1=xxxxxx&get2=xxxxxx和是重要的。如果url中有更多的斜槓(/),它會添加更多的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=這樣。瀏覽器url欄中的url應該仍然是example.com/api/user/0001

回答

1

我覺得選項B會更容易做到這一點。可能的解決方法是 -

RewriteEngine On 
RewriteBase/

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

它重定向 - example.com/api/user/0001example.com?request=api/user/0001沒有在你的瀏覽器改變地址欄的地址。