我不明白,这不是我第一次在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,请帮助。
答案 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。