Klein url роутер не работает на XAMPP

Мое приложение находится на C:\xampp\htdocs\urlrouter\klein\

Я установил роутер klein с помощью composer.
И я использую этот скрипт только для простой базовой маршрутизации

define('APP_PATH', '/urlrouter/klein/');
require_once 'vendor/autoload.php';
$request = \Klein\Request::createFromGlobals();
$request->server()->set('REQUEST_URI', substr($_SERVER['REQUEST_URI'],  strlen(APP_PATH)));
$klein = new \Klein\Klein();
$klein->respond('GET', '/hello', function () {
return 'Hello World!';
});
$klein->dispatch($request);

И у меня тоже есть.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L] 

Но когда я иду в http://localhost/urlrouter/klein/hello, он перенаправляет меня на домашнюю страницу XAMPP или http://localhost/xampp/splash.php
Я не могу понять, что не так с этим маршрутизатором. пожалуйста, помогите мне

1 ответ

Решение

Я никогда не пытался манипулировать REQUEST_URI с Klein (я не говорю, что не должен, просто предупреждаю об отсутствии опыта), но ваш вызов substr() приведет к "hello", где ваш шаблон маршрута - "/hello". Это может иметь или не иметь значения (логика сопоставления маршрутов в Klein довольно сложна, и я не усвоил все ее детали). Во всяком случае, я думаю, что стоит попытаться определить ваш APP_PATH как '/urlrouter/klein' вместо '/urlrouter/klein /'.

Если это работает, круто. Если нет, оставьте комментарий, и я постараюсь воспроизвести то, что вы видите.

Другие вопросы по тегам