Alex Costantino

Information Technology DevelopmentI.T. Development

🇬🇧️ 🇬🇷️ IT

Il file .htaccess definitivo per Laravel




Ho creato il .htaccess più figo, più incredibile, più abbagliante di tutti i tempi per Laravel.

Ok, basta con le esagerazioni. Mettiamoci un po’ seri per spiegarti quali problemi risolve.

Problema estetico

L'installazione predefinita di Laravel ti costringe a entrare nella cartella public/ per eseguire l'applicazione senza usare la CLI.

Ad esempio, per vedere la home page devi andare qui:
https://www.acitd.com/public/

Invece di qui:
https://www.acitd.com/

Problema di sicurezza

Un altro problemino è che se carichi l'applicazione “così com'è”, chiunque può scaricare i file che si trovano nella root del progetto, cosa che forse sicuramente non vuoi per motivi di sicurezza.

Quello che fanno di solito le applicazioni è distribuire i file della cartella public/ come se fossero nella root del progetto /, mentre tutti gli altri file restano nascosti.

In Laravel c'è anche un'altra cartella pubblica: storage/app/public/.

Nel caso non lo sapessi, ecco le differenze:

Cartella Uso
public/ Qui metti i file pubblici statici, cioè quelli che crei tu durante lo sviluppo.
storage/app/public/ Qui vanno i file pubblici dinamici, cioè quelli creati dall'applicazione (es. caricamenti).

La soluzione .htaccess definitiva

Per risolvere tutti i problemi sopra, ho creato il .htaccess definitivo super-mega per Laravel.

Segui i passi qui sotto e sarai a posto!

1. Inserisci questo file .htaccess nella root del progetto /:

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -d
RewriteRule ^ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_URI} !^/storage/app/public/
RewriteCond %{DOCUMENT_ROOT}/storage/app/public%{REQUEST_URI} -f
RewriteRule ^ /storage/app/public%{REQUEST_URI} [QSA,L]
RewriteCond %{REQUEST_URI} !^/(public|storage/app/public)/
RewriteRule ^ /public%{REQUEST_URI} [QSA,L]

2. Inserisci questo file .htaccess nella cartella storage/app/public/:

storage/app/public/.htaccess

allow from all

Tutto qui!

Ora le uniche cartelle pubbliche sono quelle qui sotto, e i loro file appaiono come se fossero nella root /:

  • public/
  • storage/app/public/

Inoltre ti sei liberato dell’odioso public/ dall’URL!


PS: I file che vuoi proteggere non devono essere messi in cache, così che il .htaccess possa essere applicato.


E con questo è tutto… ora vai a farti un bel bagnetto visto che è arrivata l’estate :D


Scritto da: Umano
Tradotto da: AI