2016-12-12 3 views
3

В настоящее время я пытаюсь понять, почему этот маршрут не попалSlimPHP Маршрут не называется

$app->group('/sites', function() use ($app) { 
    $app->post('/add', function ($request, $response, $args) { 
     $data = $request->getParsedBody(); 
     return json_encode($data); 
    }); 

    $app->post('/delete', function ($request, $response, $args) { 
     $data = $request->getParsedBody(); 
     return json_encode($data); 
    }); 
}); 

Для того, чтобы призыв не возвращать ошибку 404, я должен зарегистрировать следующий маршрут по всему миру.

$app->post('/', function ($request, $response, $args) { 
    $data = $request->getParsedBody(); 
    return json_encode($data); 
}); 

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

Код, который вызывает этот маршрут является простой JQuery $ HTTP метод

$.post('/sites/delete', data); 

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

Все в Chrome Dev Tools сообщает мне, что я отправляю правильный маршрут, однако по какой-то причине SlimPHP, похоже, не выполняет этот запрос должным образом, в то время как все остальные маршруты в моем приложении работают нормально, минус этот/сайтов. Я делаю что-то неправильно в регистрации этой группы? Я зарегистрировал другие подобные группы, и все они работают нормально?

+0

Что показывают журналы в веб-сервере? –

+2

Возможно ли, что у вас есть каталог 'sites' в корневом каталоге WWW вашего веб-сервера? Если это так, коды перезаписи большинства'.htaccess' будут игнорировать переписывание, если существует фактический каталог или файл, который соответствует маршруту, поэтому вы не будете переданы в slim вообще. –

+0

Ohh my f ****** god damnit ..... – Xenology

ответ

0

Ответ здесь закончился тем, что у меня был каталог сайтов. Комментарий Пер Рона Дандона к вышеуказанному сообщению.

Most .htaccess rewrite codes will ignore the rewrite if an actual directory or file that matches the route exists, so you will not be passed to slim at all.