未找到苗条框架页面

时间:2018-10-08 14:11:52

标签: php apache slim

我不明白,这不是我第一次在slim条件下启动项目,但是我有一个无法解释的错误。

我的文件夹:

c:\wamp\www\slim

我创建了“公共”文件夹

c:\wamp\www\slim\public

就像医生说的那样,我创建了2个.htaccess: 根目录:

RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

在公用文件夹中:

# Redirect to front controller
RewriteEngine On
# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

这是我在公用文件夹中的index.php:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

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

$app = new \Slim\App;
var_dump($_SERVER);

$app->get('/', function (Request $request, Response $response) {
$response->getBody()->write("Hello");

return $response;
});

$app->get('/hello/{name}', function (Request $request, Response $response, array $args) {
$name = $args['name'];
$response->getBody()->write("Hello, $name");

return $response;
});

$app->run();

如果我尝试转到:http://localhost/slim/ ::找不到页面 如果我尝试转到:http://localhost/slim/hello/Alex ::找不到页面

仅当我这样设置路线时,它才有效:

$app->get('/slim/hello/{name}', function (Request $request, Response $response, array $args) {...

我必须在路线中添加“ slim /”。

为什么?在我的另一台计算机上,它可以工作。唯一更改的是apache的版本:2.3.4和2.3.23,请帮助。

1 个答案:

答案 0 :(得分:1)

如果您的配置没有问题,请检查是否将文件添加到c:\ wamp \ www可以在localhost上访问它。

检查两个版本是否正确,是否使用分组包装路由,就像在以下两种情况中一样:discourse.slimframework.com/t/add-prefix-to-all-routes/515/4或slimframework.com/docs/v3/objects/router.html#route-groups

不使用组,并希望从子目录中支持Slim:请按照本问题注释中所述的步骤访问github.com/slimphp/Slim/issues/1529#issuecomment-341734546。