Php Slim框架仅返回404
我对Slim框架(版本2)有一个问题。如果我在默认页面上运行,它会显示没有问题的内容,但是当我请求一个路由时,比如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
$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>