Files
ahrommag/app/Http/Middleware/EnsureSlashAtEnd.php
2025-11-16 12:43:07 +03:30

51 lines
1.3 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class EnsureSlashAtEnd
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
if ($request->ajax()) {
return $next($request);
}
$path = $request->path();
$query = $request->getQueryString();
if ($path !== '' && !str_ends_with($request->getRequestUri(), '/')) {
$newUrl = $request->getSchemeAndHttpHost().'/'.$path.'/';
if ($query) {
$newUrl .= '?'.$query;
}
dd(redirect()->to('/'.$newUrl, 301) ,$newUrl );
return redirect()->to('/'.$newUrl, 301);
}
return $next($request);
}
protected function isLivewireRequest(Request $request): bool
{
return str_starts_with($request->path(), 'livewire/') ||
$request->hasHeader('X-Livewire');
}
protected function isStaticFile(Request $request): bool
{
$path = $request->getPathInfo();
return preg_match('/\.(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2|ttf|eot)$/', $path);
}
}