File: D:/HostingSpaces/SBogers95/rentman.io/app/Http/Middleware/OldRouteResolver.php
<?php
namespace App\Http\Middleware;
use App\Komma\Posts\Models\PostTranslation;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
class OldRouteResolver extends AbstractResolver
{
/**
* Handle an incoming request.
*
* @param Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, \Closure $next)
{
// Check if route should be excluded from resolving
if ($this->isRouteResolved($request) || $this->isKmsRoute($request) || $this->isRootRoute($request)) {
return $next($request);
}
$route = $request->getPathInfo();
foreach (config('redirects') as $old => $new) {
if ($old == $new) {
dd($old);
}
}
// Check if route exists as redirect
if (array_key_exists($route, config('redirects'))) {
// Redirect to the found redirect route out the config
return redirect(config('redirects.'.$route));
}
// ------- SPECIAL REDIRECT RULES --------- //
// REPLACE PART OF ROUTE
foreach (['/fr/mises-a-jour-logiciel', '/fr/jobs', '/it/aggiornamenti-del-prodotto'] as $replacePartialRoutes) {
if (Str::startsWith($route, [$replacePartialRoutes])) {
$newRoute = str_replace($replacePartialRoutes, config('redirects.'.$replacePartialRoutes), $route);
return redirect($newRoute);
}
}
// ENGLISH ROUTE TO WITHOUT LANGUAGE PREFIX
$segments = $request->segments();
if (count($segments) != 0) {
if ($segments[0] == 'en') {
$redirectRoute = '';
foreach ($segments as $key => $segment) {
if ($key == 0) {
continue;
}
$redirectRoute .= '/'.$segment;
}
return redirect($redirectRoute);
}
}
// Bottom half should be customized to the site where it's needed
// So for know we proceed with the request
return $next($request);
// Get the last segment
$segments = $request->segments();
$lastSegment = $segments[count($segments) - 1];
// Try to find the last segment as post item
if ($postTranslation = PostTranslation::where('slug', $lastSegment)->where('active', 1)->first()) {
return redirect('/nieuws/'.$lastSegment);
}
return $next($request);
}
}