Проблема Silex Routing

Простое сомнение относительно Silex Routing. Я очень новичок в Silex, и в основном я учусь этому, поскольку все идет хорошо, и вот в чем проблема (??) —

Это мой index.php ->

    require_once __DIR__.'/../vendor/autoload.php';
$app = new Silex\Application();

$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
use Symfony\Component\HttpFoundation\Response;

$app->get('/', function() {
return 'Hello World!';
});

$app->get('/hello', function() {
return 'Hello From HELLO!';
});

$app->error(function (\Exception $e, $code) use($app) {
switch ($code) {
case 404:
$message = "Oooops Not Found";
break;
default:
$message = $app['twig']->render('error500.html.twig');
}
return new Response($message, $code);
});

$app->run();

проблема касается маршрутизации, она работает, пока мы пытаемся получить доступ к дому, или / привет (http://mysite.dev или же http://mysite.dev/hello ). но если я попытаюсь получить доступ
ссылка, которая не существует, как это — http://mysite.dev/hello/blah он вернет страницу 404 ($ app-> error ()), как и ожидалось, но если я удалю / бла часть и попытаюсь снова войти в браузер (http://mysite.dev/hello) — до сих пор я получаю 404, чтобы получить доступ к сайту, я должен пройти весь путь обратно до root (т.е. http://mysite.dev). Я не знаю, пропускаю ли я какой-нибудь конфиг или что-то еще или, может быть, глупый, но, пожалуйста, я начинающий в коде.

ЗДЕСЬ ОТЛИЧНЫЙ ПРИМЕР: https://getcomposer.org/doc/00-intro.md это приведет вас к начальной странице документации композитора, и если вы добавите что-то в конце этого URL, как это https://getcomposer.org/doc/00-intro.md/blah — это даст вам «Извините, страница, которую вы ищете, не может быть найдена». error, хорошо, и если вы хотите вернуться на начальную страницу, если вы попытаетесь удалить / blah и войти снова, никоим образом вы не получите ту же страницу с ошибкой, кто-нибудь может объяснить это.

то же самое здесь http://silex.sensiolabs.org/doc/

Заранее спасибо.

1

Решение

Маршрут не ожидает косой черты. Это ожидаемое поведение, которое подробно обсуждалось: https://github.com/silexphp/Silex/issues/149

Рекомендуется определить избыточный путь с неявной косой чертой:

$app->get('/hello', function() {
return 'Hello From HELLO!';
});

$app->get('/hello/', function() {
return 'Hello From HELLO!';
});

Поскольку второй параметр является обратным вызовом, это может быть:

$hello_handler = function() {
return 'Hello From HELLO!';
};
//or
$hello_handler = array($object, 'handler_method');

$app->get('/hello',  $hello_handler);
$app->get('/hello/', $hello_handler);

Или какой-либо простой в использовании метод, который вы придумали.

Причина этого в том, что /index.html это не то же самое, что /index.html/,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]