【问题标题】:RESTful webservice in PHP .htaccess issuePHP .htaccess 问题中的 RESTful Web 服务
【发布时间】:2023-03-09 05:23:01
【问题描述】:

我用 PHP 构建了一个简单的 RESTful web 服务。我在使用 .htaccess 时遇到了问题。

我的主文件位于http://example.com/webservice/api.php,具有不同的功能,如登录、搜索、删除用户等。我可以按如下方式访问 API(使用 [] 中的动词):

我想添加一个重写规则,以便我可以访问 search 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>

【问题讨论】:

    标签: php apache .htaccess rest mod-rewrite


    【解决方案1】:

    你的 .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] 请求的相同代码,将 $params[1] 用于“name”,将 $params[2] 用于值(“bob”,在这个案例)。当然,$params[0] 包含请求操作(在本例中为“搜索”)。

    【讨论】:

      猜你喜欢
      • 2011-09-30
      • 2012-03-13
      • 1970-01-01
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      • 2012-01-29
      • 1970-01-01
      相关资源
      最近更新 更多