diff --git a/laravel/routing/router.php b/laravel/routing/router.php index e9935e4c..b2578169 100644 --- a/laravel/routing/router.php +++ b/laravel/routing/router.php @@ -76,6 +76,7 @@ class Router { public static $patterns = array( '(:num)' => '([0-9]+)', '(:any)' => '([a-zA-Z0-9\.\-_%=]+)', + '(:segment)' => '([^/]+)', '(:all)' => '(.*)', ); @@ -87,6 +88,7 @@ class Router { public static $optional = array( '/(:num?)' => '(?:/([0-9]+)', '/(:any?)' => '(?:/([a-zA-Z0-9\.\-_%=]+)', + '/(:segment?)' => '(?:/([^/]+)', '/(:all?)' => '(?:/(.*)', ); @@ -494,7 +496,7 @@ class Router { // we just did before we started searching. if (str_contains($route, '(')) { - $pattern = '#^'.static::wildcards($route).'$#'; + $pattern = '#^'.static::wildcards($route).'$#u'; // If we get a match we'll return the route and slice off the first // parameter match, as preg_match sets the first array item to the