请考虑我正在请求此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
。
答案 0 :(得分:1)
我认为选项B 会更容易做到这一点。可能的解决方案是 -
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)$ ?request=$1 [L]
重定向 - example.com/api/user/0001
到example.com?request=api/user/0001
而不更改浏览器中网址栏中的地址。