Php Slim框架-404页面不可用

Php Slim框架-404页面不可用,php,rest,http-status-code-404,slim,Php,Rest,Http Status Code 404,Slim,我遇到了Slim框架并一直在玩它。我遇到了404问题。使用下面的代码:我知道这与url有关,但我不太确定如何解决这个问题。我必须在某个地方定义“配置文件”的url吗 此外,我的目录如下所示: 包括 dbhandler.php config.php dbConnect.php 解放党 苗条的 v1 .htaccess index.php 此代码中存在问题:mysite.com//parentfolder/v1/profiles抛出404错误 $app->post('/profil

我遇到了Slim框架并一直在玩它。我遇到了404问题。使用下面的代码:我知道这与url有关,但我不太确定如何解决这个问题。我必须在某个地方定义“配置文件”的url吗

此外,我的目录如下所示:

包括

  • dbhandler.php

  • config.php

  • dbConnect.php
解放党

  • 苗条的
v1

  • .htaccess
  • index.php
此代码中存在问题:mysite.com//parentfolder/v1/profiles抛出404错误

$app->post('/profiles', 'authenticate', function() use ($app) {
            // check for required params
            verifyRequiredParams(array('gender'));

            $response = array();
            $gender = $app->request->post('gender');

            global $user_id;
            $db = new DbHandler();

            // creating new task
            $profile_id = $db->createUserProfile($user_id, $gender);

            if ($profile_id != NULL) {
                $response["error"] = false;
                $response["message"] = "Profile created successfully";
                $response["profile_id"] = $profile_id;
                echoRespnse(201, $response);
            } else {
                $response["error"] = true;
                $response["message"] = "Failed to create profile. Please try again";
                echoRespnse(200, $response);
            }            
});
.htaccess

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
我也有这个功能,工作得很好

$app->post('/register', function() use ($app) {
            // check for required params
            verifyRequiredParams(array('name', 'email', 'password'));

            $response = array();

            // reading post params
            $name = $app->request->post('name');
            $email = $app->request->post('email');
            $password = $app->request->post('password');

            // validating email address
            validateEmail($email);

            $db = new DbHandler();
            $res = $db->createUser($name, $email, $password);

            if ($res == USER_CREATED_SUCCESSFULLY) {
                $response["error"] = false;
                $response["message"] = "You are successfully registered";
            } else if ($res == USER_CREATE_FAILED) {
                $response["error"] = true;
                $response["message"] = "Oops! An error occurred while registereing";
            } else if ($res == USER_ALREADY_EXISTED) {
                $response["error"] = true;
                $response["message"] = "Sorry, this email already existed";
            }
            // echo json response
            echoRespnse(201, $response);
        });

假设
/parentfolder/v1/
是代码所在的物理文件夹。将以下内容添加到
.htaccess

RewriteBase /parentfolder/v1/
我不确定
ENV:BASE
来自哪里。除非您确定必须使用它,否则请按照Slim文档中的说明使用重写规则

RewriteEngine On
RewriteBase /parentfolder/v1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

你能试着使用并检查它是否有效吗?看看
$app->post('/profiles',authenticate',…
。我知道
authenticate
是你的中间件的函数名。那么,你也能发布你的
authenticate
代码吗?