Actualmente estoy tratando de entender por qué esta ruta no está siendo afectada.

$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);
    });
});

Para que la llamada no devuelva un error 404, tengo que registrar la siguiente ruta a nivel mundial.

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

Si intento registrar esto como / sites / delete, lanza una excepción que me dice que no puedo registrar dos de las mismas rutas para que la aplicación sepa que he registrado esta ruta.

El código que llama a esta ruta es un método simple jQuery $ http

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

He comprobado que estoy enviando datos junto con esta solicitud POST.

Todo en Chrome Dev Tools me dice que estoy publicando en la ruta correcta, sin embargo, por alguna razón, SlimPHP parece no cumplir esta solicitud correctamente, mientras que todas las demás rutas en mi aplicación parecen funcionar bien, menos esta / grupo de sitios. ¿Estoy haciendo algo mal al registrar este grupo? He registrado otros grupos como este y parece que todos funcionan bien.

3
Xenology 12 dic. 2016 a las 13:26
¿Qué muestran los registros del servidor web?
 – 
Mika Tuupola
12 dic. 2016 a las 14:36
3
¿Es posible que tenga el directorio sites en el directorio raíz www de su servidor web? Si es así, la mayoría de los códigos de reescritura de .htaccess ignorarán la reescritura si existe un directorio o archivo real que coincida con la ruta, por lo que no pasará a slim en absoluto.
 – 
Ron Dadon
13 dic. 2016 a las 12:10
Oh, maldita sea, maldita sea ...
 – 
Xenology
13 dic. 2016 a las 12:15
1
Envíe eso como respuesta para que pueda darle el crédito de la respuesta
 – 
Xenology
13 dic. 2016 a las 12:15

1 respuesta

La mejor respuesta

La respuesta aquí terminó siendo que tenía un directorio de sitios. Según el comentario de Ron Dandon en la publicación anterior.

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.
0
Xenology 18 ene. 2017 a las 02:28