Доступ к Slim Framework 4 в качестве подпапки - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь создать 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-сертификат для поддоменов.

Спасибо за помощь заранее.

...