PHP .htaccess问题中的RESTful webservice

时间:2015-02-01 10:59:49

标签: php apache .htaccess rest mod-rewrite

我在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>

1 个答案:

答案 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”)。