virtualhostun varsayılan web dizini laravelin public dizini olmalı, .htaccess zaten public içinde. Bir şekilde public dizini yerine bir üst dizini kullanıyorsanız, public içeriğini de bir üst dizine çıkarmalısınız, .htaccess dahil. Bu durumda dizinlerin korunma ihtiyacı doğarsa, .htaccess dosyası yardımı ile koruyabilir, .htaccess üzerinden veya dizinlerin içine boş bir index.html koyabilirsiniz
Birkaç projemi gezdim, benzer .htaccess kodları kullanmışım... Bunlar gibi yüzlerce örnek bulunabilir.
Dizin listelemeyi engelleme
Options -Indexes
Dizin/dosya tarayıcıdan çağırılmasını engelleme kodları
# Block all files in the site folder from being accessed directly
RewriteRule ^site/(.*) error [R=301,L]
RewriteRule ^vendor($|/|/.*|./*) – [L,R=404]
RewriteRule ^system($|/|/*|/.*) – [L,R=404]
Bu da kohana framework zamanından kalma
# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]