Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Slim框架仅返回404_Php_.htaccess_Api_Slim - Fatal编程技术网

Php Slim框架仅返回404

Php Slim框架仅返回404,php,.htaccess,api,slim,Php,.htaccess,Api,Slim,我对Slim框架(版本2)有一个问题。如果我在默认页面上运行,它会显示没有问题的内容,但是当我请求一个路由时,比如$app->get('/test')…,我总是会收到404错误 这是我的index.php <?php require 'vendor/autoload.php'; \Slim\Slim::registerAutoloader(); $app = new Slim\Slim(); // Welcome message. $app->get("/", function

我对Slim框架(版本2)有一个问题。如果我在默认页面上运行,它会显示没有问题的内容,但是当我请求一个路由时,比如
$app->get('/test')…
,我总是会收到404错误

这是我的index.php

<?php
require 'vendor/autoload.php';

\Slim\Slim::registerAutoloader();

$app = new Slim\Slim();

// Welcome message.
$app->get("/", function() use($app) {
    echo 'Appointment API<br />';
});

$app->get("/test", function () use($app) {
   echo "This is a test";
});

$app->run();
和我的作曲家文件:

{
    "require": {
        "slim/slim": "^2.6",
        "slim/extras": "*",
        "slim/middleware": "*"
    }
}
到目前为止,我真的不知道该怎么办。

使用:

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

如果您仍然获得404,那么问题不在于您的
.htaccess

如果您获得404,这意味着.htaccess问题如果启用了模式重写。如果不启用,则首先启用它,然后更改。htaccess具有以下功能,并且可以工作:

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [NC,QSA,L]
</ifModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}!-f
重写规则^(.*)$index.php/$1[NC,QSA,L]

这是apache还是slim提供的404错误?该错误是slim提供的。我从slim获得的默认错误页对我来说似乎很好。你可以尝试通过
/index.php/test
访问吗?你确定404错误不是来自apache吗?你应该从
yoursite.com/test
访问,而不是
yoursite.com/test//code>。尝试添加
Options+FollowSymLinks
到您的
.htaccess
为了补充Federico的诊断,您显然可以从
/index.php/test
访问ok页面,这意味着您的.htaccess文件根本没有被处理,这与您的Apache配置有关,而不是与“Slim框架”有关。为什么您只是删除了请求与现有目录不匹配时的条件?您认为这将如何解决OP问题?
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [NC,QSA,L]
</ifModule>