Restler 404错误路由.php:431与xampp


Restler 404 error Routes.php:431 with xampp

我试图在Windows上使用xampp 5.6.23建立一个开发环境。

我有一个API,我想用Restler 3.0.0设置,这样我就可以浏览到http://localhost/api/cars/search?term=red,调用C:'xampp'htdocs'api'cars.php文件中的search($term)函数:

<?php
class cars{
    public function search($term) {
    // do search...
    return $result;
    }
}

我也有一个C:'xampp'htdocs'api'index.php设置:

<?php
require_once 'vendor/autoload.php';
require_once 'vendor/luracast/restler/vendor/restler.php';
use Luracast'Restler'Restler;
Defaults::$crossOriginResourceSharing = true;
$r = new Luracast'Restler'Restler();
$r->setCompatibilityMode('2');
$r->setSupportedFormats('JsonFormat', 'XmlFormat', 'JsFormat');
Luracast'Restler'Format'JsonFormat::$unEscapedUnicode = false;
$r->addAPIClass('cars');
$r->addAPIClass('Luracast''Restler''Resources');
$r->handle(); //serve the response

and C:'xampp'htdocs'api'.htdocs:

DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^$ index.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
<IfModule mod_php5.c>
php_flag display_errors On
</IfModule> 

但如果我去任何URL (//cars),我得到一个404错误:

<response>
 <error>
  <code>404</code>
  <message>Not Found</message>
 </error>
 <debug>
  <source>Routes.php:431 at route stage</source>
  <stages>
   <success>get</success>
   <failure>route</failure>
   <failure>negotiate</failure>
   <failure>message</failure>
  </stages>
 </debug>
</response>

我试过从SO的多个答案,但没有一个在我的情况下工作。我没有注释LoadModule rewrite_module modules/mod_rewrite.so,并设置AllowOverride All,我可以在httpd.conf中找到它。我也尝试过将我的一切移动到htdocs而不是子文件夹,但仍然得到相同的结果。

由于您的类cars中没有index()函数而只有search()函数,因此您需要访问URL /cars/search/term

还是你想达到别的目的?