Я пытаюсь использовать Рестлер в API приложения PHP, но я получаю 404
объект возвращается по всем запросам. Я рассмотрел следующие похожие вопросы:
Я почти уверен, что проблема заключается в конфигурации сервера. Я могу запустить файлы примеров в моей локальной среде, но как только я отправляю их на работающий сервер, эта проблема сохраняется.
Например, когда я копирую папку _001_helloworld
, который работает локально, на мой сервер, я получил 404
тело ответа:
{
error: {
code: 404,
message: "Not Found"},
debug: {
source: "Routes.php:431 at route stage",
stages: {
success: [
"get"],
failure: [
"route",
"negotiate",
"message"]
}
}
}
Как я могу исправить все маршруты, возвращающие 404 в теле ответа в Рестлере.
Ик потратил целый день на решение этой же проблемы, но в конце концов сумел это сделать. На localhost все работало гладко, но на сервере я получил ту же ошибку 404 («Routes.php: 431 на этапе маршрутизации»), что и вы.
Вот что решило это для меня:
Мне пришлось переместить .htaccess в корень веб-сайта, а затем изменить RewriteRule, чтобы иметь [местоположение вашего API] /index.php вместо просто index.php.
Мой файл .htaccess:
Options -MultiViews
DirectoryIndex api/helloworld/index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ api/helloworld/index.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api/helloworld/index.php [QSA,L]
</IfModule>
<IfModule mod_php5.c>
php_flag display_errors Off
</IfModule>
Базовый пример hello world теперь можно назвать так: GET [имя_сервера] / say / hello
Других решений пока нет …