Slim skeleton 不响应除 root 之外的任何新路由
Slim skeleton not responding to any new routes other than root
我是 slim 框架的新手,所以下面是我在 /varr/www/html 中使用 php7.
为 centos 7 上的 apace 所做的确切步骤
1.作曲家创建项目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 it show me the echo "Welcome to Slim based API"; but when I type http://myip/apiv1/public/rest 我收到此消息未找到请求的 URL /apiv1/public/rest 在此服务器上未找到。我的设置可能有什么问题?
在 Web 应用程序中,区分 public 和 non-public 区域很重要。文件夹 public
为您的应用程序提供服务,因此所有浏览器、搜索引擎和 API 客户端都可以直接访问该文件夹。要解决此路由问题,只需将 Apache 中的 public
目录定义为 DocumentRoot
。 More details.
正确的 URL 应该是这样的:
我是 slim 框架的新手,所以下面是我在 /varr/www/html 中使用 php7.
为 centos 7 上的 apace 所做的确切步骤
1.作曲家创建项目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 it show me the echo "Welcome to Slim based API"; but when I type http://myip/apiv1/public/rest 我收到此消息未找到请求的 URL /apiv1/public/rest 在此服务器上未找到。我的设置可能有什么问题?
在 Web 应用程序中,区分 public 和 non-public 区域很重要。文件夹 public
为您的应用程序提供服务,因此所有浏览器、搜索引擎和 API 客户端都可以直接访问该文件夹。要解决此路由问题,只需将 Apache 中的 public
目录定义为 DocumentRoot
。 More details.
正确的 URL 应该是这样的: