2015-06-16 2 views
2

Мое приложение на C: \ XAMPP \ HTDOCS \ urlrouter \ Клейн \Klein URL маршрутизатор не работает на XAMPP

Я установил 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
Я не могу понять, что не так с этим маршрутизатором. Пожалуйста, помогите мне

ответ

1

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

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

+1

Спасибо, он работает с RewriteRule, измененным до 'RewriteRule. index.php [L] '(без обратной косой черты перед index.php)! –

Смежные вопросы