Biraz beyin fırtınası için geldim 😃 😃
Şimdi benden istedikleri şu örnek veriyorum laravel.gen.tr/mustafa-abi-siteye-geldi
Ama bir de benim yönlendirmem var 301 302 410 gibi onları da yakalamam gerekiyor veri tabanından kontrol ederek.
Şimdi olay şuna dönüyor benim 301 yönlendirmem de slug'a takılıyor 410 da slug'a takılıyor. Bu sefer o rapor sayfasına gitmeye çalıştığı için de kod patlıyor ister istemez. Şimdi bunları birbirinden nasıl ayırabilirim ?
neden any diyecek olursanız da yukarıda ki hiç bir rota ile eşleşmiyorsa burada yakalansın veri tabanından kontrol etsin yoksa ana sayfaya geri atsın diye
Route::get('/{slug}/', [MainController::class, 'reportName'])->name('reportName');
Route::get('{any}/', function ($slug) {
$seoSettings = DB::table('seo_settings')
->where('old_url', 'LIKE', "%$slug%")
->where('status', true)
->first();
if ($seoSettings) {
$statusCode = $seoSettings->routing_code;
if (in_array($statusCode, [301, 302, 307])) {
return redirect()->to($seoSettings->new_url, $statusCode);
} elseif ($statusCode === 410) {
$message = '410 - Gone';
$response = new Response($message, $statusCode);
return $response;
} else {
$message = '410 - Gone';
$response = new Response($message, $statusCode);
return $response;
}
}
return redirect('/');
})->where('any', '.*');