我被困在这里,在wamp我运行一切并且工作正常,但是,当我尝试在一个centos盒子中安装我的api时,我总是得到一个“Not Found”错误。
我不知道还能做什么!
即使说/你好的例子也失败了......
是否有处理restler的apache要求的规范?
任何想法?,它是一种迫切的
say.php:
<?php
class Say {
function hello($to='world') {
return "Hello $to!";
}
}
的index.php
<?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可能会按照我的方式进行,我可以在这里粘贴代码。
当我输入这样的网址时:http://myhost/mylocation/
我收到一个json错误:
{
"error": {
"code": 404,
"message": "Not Found"
}
}
如果我输入http://myhost/mylocation/say/hello
,那么我会收到 not found 错误,就像.htaccess一样无效。
[编辑]
如果我将“index.php”添加到这样的网址:http://myhost/mylocation/index.php/say/hello
似乎有效,但我不能这样离开......
我从Restler returns 404 status code if index.php is not included in URL
得到了这个答案 0 :(得分:6)
好的,我找到了问题,感谢大家的帮助。
解决方案是将AllowOverride
文件的httpd.conf
变量设置为All
而不是None
。一旦我尝试它,它工作:)
除了apache的 mod_rewrite 之外,我没有找到另一个运行restler的要求,如果我这样做,我会编辑它并把它放在这里。
我发现这是 restler 的常见问题,在文档中提及它可能会很好,希望这可以帮到你。
PD :我必须说在编辑我的问题时投票失败是非常烦人的,因为我发布它后它甚至没有过一分钟,但是我尽可能快地做了。你可能会说“你为什么发布它呢?”由于restler需求部分,它不需要太多细节来回答......