RestApi服务器代码无法工作

时间:2015-06-08 05:55:23

标签: php apache .htaccess

我正在尝试编写RestAPi服务器代码而且我很困难。

我的目录结构是/var/www/html/RestApi/rest/文件。我正在写这个文件夹中的服务器代码。我的.htaccess文件位于/var/www/html/.htaccess,文件位于以下设置我的。htaccess文件

/var/www/html/<br>
          |<br>
          |<br>
          |--- index.php, .htaccess<br>
          |<br>
          |---/RestApt/rest/api.php (restapi server code)<br>
              /RestApt/rest/ .... (Other files to support api.php)<br>

.htaccess看起来像

    RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^/RestApt/rest/(.*)$ /RestApt/rest/api.php?request=$1 [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^/RestApt/rest/(.*)$ /RestApt/rest/api.php [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^/RestApt/rest/(.*)$ /RestApt/rest/api.php [QSA,NC,L]

现在我的api.php中有一个api:

private function users(){
    // Cross validation if the request method is GET else it will return "Not Acceptable" status
    if($this->get_request_method() != "GET"){
        $this->response('',406);
        }
        ...
    }

完成所有这些操作后,当我使用chrome RestAPi扩展程序从浏览器调用RestApi时出现以下错误

  

在此服务器上找不到请求的网址/RestApi/rest/users

在我的apache文件中/etc/apache2/apache2.conf我已经做了以下修改

AllowOverride All

我真的被卡住了,请稍微说清楚。

1 个答案:

答案 0 :(得分:1)

尝试从重写规则中删除第一个斜杠/。他们应该是这样的:

RewriteRule ^RestApt/rest/(.*)$

此外,我还注意到可能出现的印刷错误:RestAp t