【问题标题】:Slim skeleton not responding to any new routes other than root苗条的骨架不响应根以外的任何新路由
【发布时间】:2018-08-02 01:26:37
【问题描述】:

我对超薄框架非常陌生,所以下面是我在 /varr/www/html 中使用 php7 在 centos 7 上快速执行的确切步骤。
1. composer create-project slim/slim-skeleton
2.重命名为apiv1
3. chown -R apache:apache apiv1
4. 然后在 /src/middleware.php 我添加了这个。

$app->add(function ($req, $res, $next) {
    $response = $next($req, $res);
    return $response
        ->withHeader('Access-Control-Allow-Origin', '*')
        ->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization')
        ->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
});

5。然后在 src/route.php-

use Slim\Http\Request;
use Slim\Http\Response;
$app->get('/', function()  {
   // $app->response->setStatus(200);
    echo "Welcome to Slim based API";
});
$app->get('/rest', function()  {
   // $app->response->setStatus(200);
    echo "Welcome to Rest page";
});

现在我遇到了http://myip/apiv1/public 的问题,它向我显示了回声“欢迎使用基于 Slim 的 API”;但是当我输入http://myip/apiv1/public/rest 时,我收到此消息 not found 在此服务器上找不到请求的 URL /apiv1/public/rest。我的设置可能有什么问题?

【问题讨论】:

  • apiv2 还是apiv1
  • 对不起,我的错误应该是 apiv1。这个问题可能是什么问题?

标签: php rest jwt slim


【解决方案1】:

在 Web 应用程序中,区分公共区域和非公共区域非常重要。 public 文件夹服务于您的应用程序,因此所有浏览器、搜索引擎和 API 客户端也可以直接访问该文件夹。要解决此路由问题,只需将 Apache 中的 public 目录定义为 DocumentRootMore details.

正确的 URL 应该如下所示:

【讨论】:

  • 现在的问题我用过这个方法 AllowOverride All #Allow open access: Require all given Options -Indexes 好像还是不行
  • 我很迷茫,已经尝试了好几个小时,我找不到如何设置这个虚拟主机设置
  • 其实安装这个slim的正确方法是纯slim还是slim-skeleton
  • 你有.htaccess和前置控制器吗?也许试试这个slim-skeleton 或阅读我的slim tutorial(针对 slim 和 apache 进行了优化)
  • 是的,我已经尝试过超薄骨架和纯超薄。我在公用文件夹中默认为 .htaccess 用于超薄骨架。我知道这是一个纯粹的 url 重写问题,一直在尝试各种建议,网络不起作用/
猜你喜欢
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多