【发布时间】:2018-05-23 02:15:24
【问题描述】:
我正在学习 Slim 框架,但被它的路由卡住了。
工作代码。代码 sn-p #1:
$app = new \Slim\App();
$app->get("/", function () {
echo "Hello SlimFramework";
});
$app->run();
不工作。代码 sn-p #2:
$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();
我收到“未找到” 在此服务器上找不到请求的 URL /hello/name。”对于代码 sn-p #2。任何线索这里发生了什么?
.htaccess 文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
提前致谢!
【问题讨论】:
-
听起来你的
.htaccess没有产生适当的效果。最好的检查方法是破坏它 - 如果您将Test添加到它的顶部并且您的网站没有破坏,那么它就没有被阅读。 -
可能是一个愚蠢的问题,但您是否通过 Apache 运行应用程序?如果是这样,服务器或虚拟主机的文档根目录是否设置为应用程序的
public目录?.htaccess文件是public/.htaccess吗? -
在 .htaccess 文件中尝试这一行
RewriteRule ^(.*)$ index.php [QSA,L] -
@ceejayoz 的解决方案帮助我发现了问题。我的 .htaccess 没有被读取。
-
@bianca 请在此处添加您的解决方案作为答案。其他人很可能会遇到同样的问题,没有什么比在网上找到你的问题更糟糕的了