Jump to content

Come rimuovere public dall'url di Laravel


Askancy

Recommended Posts

  • Admin

hq720.jpg

 

Come rimuovere public dall'url di Laravel?

Se stai sviluppando un'applicazione web con Laravel, probabilmente ti sei imbattuto nel problema di avere la parola "public" nell'url del tuo sito. Questo può essere fastidioso per vari motivi: estetici, di sicurezza o di SEO. In questo post, ti spiegherò come rimuovere public dall'url di Laravel in modo semplice e veloce.

Ci sono due modi principali per farlo: modificare il file .htaccess o spostare i file nella cartella public. Vediamo i pro e i contro di entrambi i metodi.

Modificare il file .htaccess

Il file .htaccess è un file che contiene delle direttive per il server web Apache, che è il più usato per ospitare le applicazioni Laravel. Questo file si trova nella cartella public del tuo progetto Laravel e serve a definire le regole di reindirizzamento degli url.

Per rimuovere public dall'url di Laravel, puoi modificare il file .htaccess in questo modo:

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

    RewriteEngine On

    # Rimuove public dall'url
    RewriteCond %{REQUEST_URI} !^/public/
    RewriteRule ^(.*)$ /public/$1 [L,QSA]

    # Reindirizza le richieste al front controller
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Questo codice fa due cose: prima, controlla se l'url contiene la parola "public" e, in caso negativo, la aggiunge prima di passare la richiesta al server. Poi, reindirizza tutte le richieste che non corrispondono a una cartella o a un file esistente al file index.php, che è il front controller di Laravel.

Questo metodo ha il vantaggio di essere semplice e veloce da implementare, ma ha anche degli svantaggi. Il principale è che espone il contenuto della cartella public, che potrebbe contenere dei file sensibili o non necessari all'utente finale. Inoltre, potrebbe causare dei problemi con alcuni servizi di hosting che non permettono di modificare il file .htaccess o che hanno delle configurazioni diverse da quelle predefinite.

Spostare i file nella cartella public

Un altro modo per rimuovere public dall'url di Laravel è spostare i file che si trovano nella cartella public nella cartella principale del tuo progetto Laravel. Questo significa che dovrai copiare i file index.php, .htaccess e favicon.ico nella cartella superiore e modificare il file index.php in questo modo:

// Cambia questa riga
require __DIR__.'/../vendor/autoload.php';

// In questa
require __DIR__.'/vendor/autoload.php';

// Cambia questa riga
$app = require_once __DIR__.'/../bootstrap/app.php';

// In questa
$app = require_once __DIR__.'/bootstrap/app.php';

Questo codice serve a cambiare il percorso dei file che vengono richiamati dal front controller, in modo che puntino alla cartella corretta.

Questo metodo ha il vantaggio di non esporre la cartella public e di non dipendere dal file .htaccess o dal server web. Tuttavia, ha anche degli svantaggi. Il principale è che devi spostare manualmente i file ogni volta che aggiorni la tua applicazione Laravel o che installi delle nuove dipendenze con Composer. Inoltre, potresti avere dei problemi con alcuni servizi di hosting che richiedono che la cartella public sia la root del tuo sito.

Conclusione

In questo post, ti ho mostrato come rimuovere public dall'url di Laravel con due metodi diversi: modificare il file .htaccess o spostare i file nella cartella public. Entrambi i metodi hanno dei pro e dei contro, quindi devi scegliere quello che si adatta meglio alle tue esigenze e alle tue preferenze. Controlla che il file .env non sia visibile dal pubblico una volta effettuato queste modifiche.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. to insert a cookie message.