在执行以下Tutorial(9:48)关于Slim并测试Slim功能之后,我仍然收到" Page not not found"。
程序应该在某个点之后回显在搜索栏中键入的任何单词。例如,如果搜索" http://localhost/authentication/public/test/Hello",页面应该回显“你好&#39 ;,页面应回声' Hello' 。
这是通过使用.htaccess文件将任何链接重新路由到index.php来完成的。然后index.php文件运行名为start.php的php文件。
对于为什么这可能不起作用的任何建议?
超薄v3.x
的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
的index.php
<?php
require '../app/start.php';
$app->run();
?>
start.php
<?php
use Slim\App;
session_cache_limiter(false);
session_start();
ini_set('display_errors', 'On');
define('INC_ROOT', dirname(__DIR__));
require INC_ROOT . '/vendor/autoload.php';
$app = new App();
$app->get('/test/:name', function($name) {
echo "Hello! {$name}";
});
?>
答案 0 :(得分:1)
问题是你在使用Slim 3时尝试使用Slim 2 Code。 您必须将代码更改为新结构或切换回v2。
slimframework homepage上有一个像你这样的例子:
//example taken from slimframework.com
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require 'vendor/autoload.php';
$app = new \Slim\App;
$app->get('/hello/{name}', function (Request $request, Response $response) {
$name = $request->getAttribute('name');
$response->getBody()->write("Hello, $name");
return $response;
});
$app->run();
我建议您阅读official docs。