我已在我的本地服務器上安裝了Restler以測試併爲我的項目製作一些API。Restler總是返回404:未找到
Api請求通過http://localhost/myproject/api/
處理。
的問題是,每當我提出一個要求,我得到以下錯誤:
{
"error": {
"code": 404,
"message": "Not Found"
},
"debug": {
"source": "Routes.php:383 at route stage",
"stages": {
"success": [
"get"
],
"failure": [
"route",
"negotiate",
"message"
]
}
}
}
而且這是我.htaccess
:
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api(.*)$ /myproject/api/api.php [QSA,L]
這是什麼api.php
的樣子:
namespace myproject;
use Luracast\Restler\Restler;
require_once($_SERVER["DOCUMENT_ROOT"]."/myproject/resources/engine/settings.php");
require_once(Settings\Path\Absolute::$library."/restler/vendor/restler.php");
$restler = new Restler();
$restler->addAPIClass("myproject\\User");
$restler->handle();
我想這裏有一些misconfigura周圍,但我真的不明白什麼是錯的。
(我也嘗試#2的一些解決方案,但他們似乎並沒有爲我工作)
編輯:
我嘗試使用以下路徑http://localhost/myproject/resources/engine/library/restler/public/examples
到達例子,他們正在,所以我想它與Restler本身的配置有關,因爲它似乎不適用於http://localhost/myproject/api
。
此外,我還試着在http://localhost/myproject/api/explorer
中複製Restler Explorer,並且我不斷收到錯誤:404 : Not Found ../resources.json
可能是因爲我沒有在我的項目的根文件夾中安裝Restler。我該如何將Restler安裝在不同的子文件夾中?
編輯2: 我剛搬到下面的類到例如001文件夾:
class User {
function data() {
return "HELLO!";
}
}
,並加入這一行的例子的index.php
內:
$r->addAPIClass('User');
,如果我嘗試以.../_001_helloworld/index.php/say/hello
運行示例它沒有問題,但如果我嘗試_001_helloworld/index.php/user/data
它不是。
在這一點上,我已經失去了所有的希望,我真的需要幫助「原因我真的失去了一些東西,但真的無法猜測:(HELP!
我按照前兩個步驟解決了問題。謝謝,我真的很感謝你的幫助:) – siannone
我有類似的問題。這一切都在昨天工作,然後我開始接收來自Restler的404消息。我的網絡服務器配置都沒有改變。 通過index.php去工作,去這樣或沒有index.php創建一個routes.php文件,在兩種情況下是相同的。 –
請忽略我的評論;我使用了錯誤的URL .. Doh –