Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP.htaccess中的RESTfulWebService问题_Php_Apache_.htaccess_Rest_Mod Rewrite - Fatal编程技术网

PHP.htaccess中的RESTfulWebService问题

PHP.htaccess中的RESTfulWebService问题,php,apache,.htaccess,rest,mod-rewrite,Php,Apache,.htaccess,Rest,Mod Rewrite,我用PHP构建了一个简单的RESTful Web服务。不过,我在访问上遇到了麻烦 我的主文件位于,具有登录、搜索、删除用户等不同功能。。我可以使用[]中的动词访问API,如下所示: -[POST uname=bob&password=123] -[GET name=bob] -[删除id=2] 我想添加一个重写规则,这样我就可以访问搜索API了 - 这是我的.htaccess文件: <IfModule mod_rewrite.c> RewriteEngine On RewriteCo

我用PHP构建了一个简单的RESTful Web服务。不过,我在访问上遇到了麻烦

我的主文件位于,具有登录、搜索、删除用户等不同功能。。我可以使用[]中的动词访问API,如下所示:

-[POST uname=bob&password=123] -[GET name=bob] -[删除id=2] 我想添加一个重写规则,这样我就可以访问搜索API了 -

这是我的.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>

htaccess文件将转换搜索URL

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]请求相同的代码,在本例中,name使用$params[1],值bob使用$params[2]。当然,在本例中,$params[0]包含请求操作搜索