Я пытаюсь создать API с SLIM Framework V4.
htdocs / slim / public / index. php
<?php
require __DIR__ . '/../vendor/autoload.php';
use DI\Container;
use Slim\Factory\AppFactory;
use Illuminate\Pagination\Paginator;
use App\Middlewares\RequestUser;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
// Create Container using PHP-DI
$container = new Container();
// Set container to create App with on AppFactory
AppFactory::setContainer($container);
$app = AppFactory::create();
$app->options('/{routes:.+}', function ($request, $response, $args) {
return $response;
});
$app->get('/', function (Request $request, Response $response, $args) {
$data = array('message' => 'Unauthorized access');
$payload = json_encode($data);
$response->getBody()->write($payload);
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
});
$app->run();
Если я запускаю php сервер, он работает нормально
G:\xampp\htdocs\slim\public> php -S localhost:8888
PHP 7.2.27 Development Server started at Sun Apr 19 18:42:11 2020
Listening on http://localhost:8888
Document root is G:\xampp\htdocs\slim\public
Если я запускаю
http://localhost/slim/public/
Я получаю
Fatal error: Uncaught Slim\Exception\HttpMethodNotAllowedException: Method not allowed. Must be one of: OPTIONS in G:\xampp\htdocs\slim\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php:96 Stack trace: #0 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\Routing\RouteRunner.php(72): Slim\Middleware\RoutingMiddleware->performRouting(Object(Slim\Psr7\Request)) #1 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\MiddlewareDispatcher.php(81): Slim\Routing\RouteRunner->handle(Object(Slim\Psr7\Request)) #2 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\App.php(211): Slim\MiddlewareDispatcher->handle(Object(Slim\Psr7\Request)) #3 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\App.php(195): Slim\App->handle(Object(Slim\Psr7\Request)) #4 G:\xampp\htdocs\slim\public\index.php(37): Slim\App->run() #5 {main} thrown in G:\xampp\htdocs\slim\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php on line 96
htdocs
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
</IfModule>
Я работаю над windows 10, xampp v3.2.4
В качестве подпапки будет использоваться папка с общим хостингом go. Я проверил это как поддомен на Godaddy сервере, он работает нормально. Но мне нужно, чтобы это была подпапка основного домена, так как godaddy также взимает SSL-сертификат для поддоменов.
Спасибо за помощь заранее.