我在PHP中构建了一个简单的RESTful Web服务。我遇到了.htaccess的问题。
我的主要文件位于http://example.com/webservice/api.php,具有不同的功能,例如登录,搜索,删除用户等。我可以按如下方式访问API(使用[]中的动词):
我想添加重写规则,以便我可以访问搜索 API - http://example.com/webservice/search/name/bob
现在是我的.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)$ api.php?request=$1 [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ api.php [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^(.*)$ api.php [QSA,NC,L]
</IfModule>
答案 0 :(得分:0)
Yout .htaccess文件将转换搜索网址
http://example.com/webservice/search/name/bob
进入这个:
http://example.com/api.php?request=/search/name/bob
因此,在PHP中处理参数时,您应该将请求参数“爆炸”为参数数组,如下所示:
$params=array_explode("/",$_GET['request']);
这样,您将应用与[GET name = bob]请求相同的代码,使用$ params [1]代表“name”,$ params [2]代表值(“bob”,in这个案例)。当然,$ params [0]包含请求操作(在本例中为“search”)。