Laravel’de Upload Klasörünü Değiştirme

Eğer Plesk veya cPanel hosting kullanan bir müşteriniz olduysa, bu panellerin sembolik bağlantıları engellemesi nedeniyle 403 Forbidden hatasıyla karşılaşmış olabilirsiniz.

Bu sorunun en iyi çözümü, Laravel’in varsayılan storage/app/public dizinini public/uploads olarak değiştirmektir. Bu şekilde sembolik bağlantılardan tamamen kurtulabilirsiniz.

Bu değişikliği yapmak için, config/filesystems.php dosyasını açın ve aşağıdaki değişiklikleri yapın.

‘public’ => [ ‘driver’ => ‘local’, ‘root’ => public_path(‘uploads’), ‘url’ => env(‘APP_URL’).’/uploads’, ‘visibility’ => ‘public’, ‘throw’ => false, ],

Laravel artık yüklemeler için public/uploads klasörünü kullanacaktır. Dosyaları herkese açık olarak depolamak için $request->store('subdir', 'public') kullanabilirsiniz.

Herkese açık olmayan veya olmaması gereken dosyaları private diske yüklemeniz daha doğru bir tercih olacaktır.

Laravel’de URLde ‘public’ klasörünü kaldırma

Özellikle paylaşımlı sunucularda karşımıza çıkan Laravel URL’lerdeki /public/index.php sorununu, .htaccess ile nasıl çözebileceğimizi öğreneceğiz.

Bu sorunu gidermek için ana dizinde (app, bootstrap, vb. klasörlerin olduğu) bulunan .htaccess dosyasına aşağıdaki direktifleri ekleyin

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On
    
    RewriteCond %{REQUEST_URI} !^/public/
    RewriteRule ^(.*)$ /public/$1 [L,QSA]
</IfModule>

Bunun dışında .env dosyasında APP_URL’de var ise /public kısmını silin.