• 31-01-2025, 16:33:09
    #1
    Merhaba R10 Ailesi,

    Laravel tabanlı bir projem var ve URL yapısında bir sorun yaşıyorum.

    Site'de / 'dan sonra ne yazarsam yazayım ana sayfaya yönlendiriyor. Bunu engelleyebilirim ?

    Sorun çözüldü yardımlarınız için teşekkürler
  • 31-01-2025, 16:36:13
    #2
    /* route tanımla eğer tanımlı route dışında bir istek gelirse ilgili sayfaya yönlendirebilirsin 404 sayfası gibi örn $router->get('/*', 'HomeController@404notfound')->name('404notfund');
  • 31-01-2025, 16:40:39
    #3
    Eğer İndex metodu anasayfayi açıyor ise bu kod zaten dediğiniz işlevi yapiyor, rota yapilandirmada mantıksal hata yapıyorsunuz

    $router->get('/{locale}', 'HomeController@index')->name('home');
  • 31-01-2025, 16:41:13
    #4
    Modal adlı üyeden alıntı: mesajı görüntüle
    /* route tanımla eğer tanımlı route dışında bir istek gelirse ilgili sayfaya yönlendirebilirsin 404 sayfası gibi örn $router->get('/*', 'HomeController@404notfound')->name('404notfund');
    https://laravel.com/docs/7.x/errors#http-exceptions

    abort(404); diye bir fonksiyon var zaten bunu kullanmak daha mantıklı olacaktır. Route üzerinden functiona yazabilirsin. abort(404) şeklinde.

  • 31-01-2025, 16:42:27
    #5
    Modal adlı üyeden alıntı: mesajı görüntüle
    /* route tanımla eğer tanımlı route dışında bir istek gelirse ilgili sayfaya yönlendirebilirsin 404 sayfası gibi örn $router->get('/*', 'HomeController@404notfound')->name('404notfund');
    Cevap için teşekkürler

    Tanımsız değerleri tek tek belirlemek zor olur. Tüm tanımsız değerleri yönlendirmek için /* kodu işe yaramadı ?
  • 31-01-2025, 16:43:57
    #6
    route grubu kullanmaya dener misiniz ?

    Route::group(['prefix' => '{locale}', 'where' => ['locale' => 'en|tr']], function () {    Route::get('/', 'HomeController@index')->name('home');    Route::get('/lang/{locale}', 'HomeController@changeLanguage')->name('change_language'); });
    yada local parametresine kısıtlama ekleyebilirsiniz.

    $router->get('/{locale}', 'HomeController@index')    ->where('locale', 'en|tr')    ->name('home');

    hiçbir route tanımına uymayan routeları otomatik olarak 404 hata sayfasına yönlendirecektir fallback


    Route::fallback(function () {    abort(404); });
  • 31-01-2025, 16:47:46
    #7
    ErkanAranci adlı üyeden alıntı: mesajı görüntüle
    Cevap için teşekkürler

    Tanımsız değerleri tek tek belirlemek zor olur. Tüm tanımsız değerleri yönlendirmek için /* kodu işe yaramadı ?
    Route tanımlarının en üstüne yazılmayacak ama en alta yazılacak diğerlerini bulamazsa buna gir anlamında o yüzden en altta olacak
  • 31-01-2025, 16:58:44
    #8
    lXenonl adlı üyeden alıntı: mesajı görüntüle

    $router->get('/{locale}', 'HomeController@index')    ->where('locale', 'en|tr')    ->name('home');
    hiçbir route tanımına uymayan routeları otomatik olarak 404 hata sayfasına yönlendirecektir fallback
    Bu kod işe yaradı, Teşekkürler.

    Modal adlı üyeden alıntı: mesajı görüntüle
    Route tanımlarının en üstüne yazılmayacak ama en alta yazılacak diğerlerini bulamazsa buna gir anlamında o yüzden en altta olacak
    Evet en alta ekledim ve ilave olarak yukarıdaki kodu kullanınca ikisi birlikte daha iyi sonuç verdi.

    Teşekkürler
  • 31-01-2025, 17:35:42
    #9
    ErkanAranci adlı üyeden alıntı: mesajı görüntüle
    Bu kod işe yaradı, Teşekkürler.



    Evet en alta ekledim ve ilave olarak yukarıdaki kodu kullanınca ikisi birlikte daha iyi sonuç verdi.

    Teşekkürler
    rica ederim iyi kod yazmalar hocam