lumberjack icon indicating copy to clipboard operation
lumberjack copied to clipboard

Request with a dot (".") inside a Custom Route paramter returns a 404 (not found) exception

Open BartChris opened this issue 4 years ago • 2 comments

Hi there,

we are encountering an error when we put dots (".") in our route parameters. Is it allowed to do that?

What are the steps to reproduce this issue?

  1. Define a custom Route in Lumberjack, with a Route Parameter
  2. Pass a route paramter which contains a dot

` Router::get('posts/{id}', function($id) {

}); Call URL /posts/a.b.c `

What happens?

Server returns 404

What were you expecting to happen?

Server returns the correct page

What versions of software are you using?

Operating System: Debian Buster

PHP Version: PHP 7.4

Lumberjack Version: 5.0.0

Thank you for your support!

BartChris avatar Feb 26 '21 14:02 BartChris

We were able to fix that by using the following Router::get('/posts/{id}', 'Controller@showRecord')->where('id', '.*');

but are inspecting wether this might have unintended consequences.

The documentation states: "By default, all parameters will match against all non / characters. You can make the match more specific by supplying a regular expression:"

This is probably not correct since dots seem to be not allowed witth standard settings.

Edit: We now changed it to Router::get('posts/{id}', function () {})->where('id', '[a-zA-Z0-9_.-]+');

to avoid including slashes

BartChris avatar Feb 26 '21 14:02 BartChris