Вам необходимо проверить реальный запрошенный путь, а не URL. Я не проверял это сейчас, но я предполагаю getUrl
построить его по маршрутам и добавить index.php
по умолчанию.
Так почему бы не использовать php: $_SERVER['REQUEST_URI']
public function handle($request, Closure $next)
{
if(strpos($_SERVER['REQUEST_URI'], 'index.php'))
return Redirect::to('/', 301);
return $next($request);
}
Поскольку вы получите реальный URI, и index.php может быть единственным вызовом, вы можете даже выполнить проверку без поиска, что может быть быстрее:
public function handle($request, Closure $next)
{
if($_SERVER['REQUEST_URI'] === "/index.php")
return Redirect::to('/', 301);
return $next($request);
}
Но имейте в виду:
.htaccess
- безусловно, лучшее и более быстрое решение! Вы должны полностью изменить свои переписки на него. Код, который вы напишите выше, будет выполняться при КАЖДОМ вызове вашей стороны. Если вы делаете это по причинам SEO, имейте в виду, что такие вещи увеличат все ваше время загрузки!
Примечание: приведенный выше код не проверен. ;)