Search code examples
phpapiframeworksslim

Slim Framework always return 404 Error


These days i'm using Slim Framework as my simplest tool to develop the php web api. Using these two articles:

I follow some of the steps from there. Downloading the Slim Framework, putting the correct directory & files. Adjusting the initation statements such as;

//1. Require Slim
require('Slim/Slim.php');

//2. Instantiate Slim
$app = new Slim();

//3. Define routes
$app->get('/books', function ($id) {
    //Show book with id = $id
});

And then, I modify the rest accordingly.

Such as my checklist that already done:

  • LoadModule rewrite_module modules/mod_rewrite.so -> enabled
  • Slim .htaccess:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ bootstrap.php [QSA,L]

But, after Once I run this statement;

$app->run();

And I run it on my browser.... then, I got 404 Error while testing it on my Localhost. What's the solution for fixing that?

FYI, here is my simplest PHP file that i'm currently using it. (shared Link)


Solution

  • Problem is solved!

    My apache is actually normal, and the .htaccess file provided earlier also normal.

    The clue is the URL that I used. Previously I used the invalid URL, thus it returned the 404 page error. I just realized it when I Tried to access the newer GET URL via browser with this one;

    http://localhost/dev/index.php/getUsers/user1
    

    and now that works!

    I just realized it once I found these statements;

    If Slim does not find routes with URIs that match the HTTP request URI, Slim will automatically return a 404 Not Found response.

    If Slim finds routes with URIs that match the HTTP request URI but not the HTTP request method, Slim will automatically return a 405 Method Not Allowed response with an Allow: header whose value lists HTTP methods that are acceptable for the requested resource.