2

我的应用程序位于 C:\xampp\htdocs\urlrouter\klein\

我使用composer安装了klein路由器。
而且,我使用这个脚本只是为了简单的基本路由

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
我无法弄清楚这个路由器出了什么问题。请帮我

4

1 回答 1

1

我从来没有尝试过REQUEST_URI用 Klein 操作(不是说你不应该,只是警告缺乏专业知识),但是你的 substr() 调用会产生“hello”,你的路由模式是“/hello” . 这可能或可能无关紧要(Klein 中的路由匹配逻辑有些复杂,我还没有内化它的所有细节)。无论如何,我认为值得尝试将您的定义APP_PATH为“/urlrouter/klein”而不是“/urlrouter/klein/”。

如果这有效,那就太酷了。如果没有,请发表评论,我会尝试重现您所看到的。

于 2015-06-17T14:47:52.267 回答