我被困在这里,在wamp中我运行所有的东西并且工作正常,然而,当我试图在centos框中安装我的api时,总是会得到一个“not found”错误。
我不知道还能做什么!
即使是说/你好的例子也失败了…
是否有处理restler的apache需求的规范?
有什么想法吗?,有点紧急
PHP:

<?php
class Say {
    function hello($to='world') {
        return "Hello $to!";
    }
}

索引文件
<?php
    require_once 'restler/restler.php';
    require_once 'say.php';

    $r = new Restler();
    $r->addAPIClass('Say');

    $r->setSupportedFormats('jsonpformat', 'jsonformat', 'xmlformat', 'yamlformat');
    $r->handle();

HTAccess
DirectoryIndex index.php
<IfModule mod_rewrite.c>
    RewriteEngine On
    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/mylocation/say/hello。
基本上这就是我的全部代码,如果你们认为jsonpformat可能会以我的方式在这里粘贴代码。
当我像这样键入url时:http://myhost/mylocation/会出现json错误:
{
  "error": {
    "code": 404,
    "message": "Not Found"
  }
}

如果我键入http://myhost/mylocation/say/hello则会得到“未找到”错误,类似于。htaccess不工作。
[编辑]
如果我像这样将“index.php”添加到url中似乎可以工作:http://myhost/mylocation/index.php/say/hello,但我不能像这样离开它…
我从:Restler returns 404 status code if index.php is not included in URL

最佳答案

好的,我发现了问题,谢谢大家的帮助。
解决方法是将AllowOverride文件的httpd.conf变量设置为All,而不是None。我一试就成功了:)
除了对apache的mod_重写,我没有找到运行restler的另一个需求,如果找到了,我将编辑这个并将其放在这里。
我发现这是restler的一个常见问题,最好在文档中提到它,希望这可以帮助您。
警察:我必须说,在编辑我的问题时被投票否决是非常恼人的,因为我的问题发布后一分钟都没有通过,但是我尽我所能的快。你可能会说“那你为什么贴出来?”因为restler需求部分,它不需要太多细节来回答这个问题……

10-06 07:04