@@ -239,7 +239,7 @@ private function compileStaticRoutes(array $staticRoutes, bool $supportsRedirect
239
239
240
240
$ code .= sprintf (" case %s: \n" , self ::export ($ url ));
241
241
foreach ($ routes as $ name => list ($ hasTrailingSlash , $ route )) {
242
- $ code .= $ this ->compileRoute ($ route , $ name , $ supportsRedirections , $ hasTrailingSlash );
242
+ $ code .= $ this ->compileRoute ($ route , $ name , $ supportsRedirections , $ hasTrailingSlash, true );
243
243
}
244
244
$ code .= " break; \n" ;
245
245
}
@@ -451,7 +451,7 @@ private function compileStaticPrefixCollection(StaticPrefixCollection $tree, \st
451
451
$ hasTrailingSlash = $ state ->supportsRedirections && '' !== $ regex && '/ ' === $ regex [-1 ];
452
452
453
453
if ($ compiledRoute ->getRegex () === $ prevRegex ) {
454
- $ state ->switch = substr_replace ($ state ->switch , $ this ->compileRoute ($ route , $ name , $ state ->supportsRedirections , $ hasTrailingSlash )."\n" , -19 , 0 );
454
+ $ state ->switch = substr_replace ($ state ->switch , $ this ->compileRoute ($ route , $ name , $ state ->supportsRedirections , $ hasTrailingSlash, false )."\n" , -19 , 0 );
455
455
continue ;
456
456
}
457
457
@@ -485,7 +485,7 @@ private function compileStaticPrefixCollection(StaticPrefixCollection $tree, \st
485
485
486
486
$ state ->switch .= <<<EOF
487
487
case {$ state ->mark }:
488
- {$ combine }{$ this ->compileRoute ($ route , $ name , $ state ->supportsRedirections , $ hasTrailingSlash )}
488
+ {$ combine }{$ this ->compileRoute ($ route , $ name , $ state ->supportsRedirections , $ hasTrailingSlash, false )}
489
489
break;
490
490
491
491
EOF ;
@@ -572,16 +572,9 @@ private function compileSwitchDefault(bool $hasVars, string $routesKey, bool $ma
572
572
/**
573
573
* Compiles a single Route to PHP code used to match it against the path info.
574
574
*
575
- * @param Route $route A Route instance
576
- * @param string $name The name of the Route
577
- * @param bool $supportsRedirections Whether redirections are supported by the base class
578
- * @param bool $hasTrailingSlash Whether the path has a trailing slash
579
- *
580
- * @return string PHP code
581
- *
582
575
* @throws \LogicException
583
576
*/
584
- private function compileRoute (Route $ route , string $ name , bool $ supportsRedirections , bool $ hasTrailingSlash ): string
577
+ private function compileRoute (Route $ route , string $ name , bool $ supportsRedirections , bool $ hasTrailingSlash, bool $ checkHost ): string
585
578
{
586
579
$ code = '' ;
587
580
$ compiledRoute = $ route ->compile ();
@@ -605,7 +598,7 @@ private function compileRoute(Route $route, string $name, bool $supportsRedirect
605
598
$ conditions [] = $ expression ;
606
599
}
607
600
608
- if (!$ compiledRoute ->getHostRegex ()) {
601
+ if (!$ checkHost || ! $ compiledRoute ->getHostRegex ()) {
609
602
// no-op
610
603
} elseif ($ hostMatches ) {
611
604
$ conditions [] = sprintf ('preg_match(%s, $host, $hostMatches) ' , self ::export ($ compiledRoute ->getHostRegex ()));
0 commit comments