Per "nascondere" la cartella `public` dall'URL e rendere il tuo sito accessibile direttamente alla radice del dominio, puoi utilizzare alcune tecniche di configurazione del server web. Di seguito ti fornisco un esempio di come farlo utilizzando il file `.htaccess` per un server Apache.
1. Assicurati di avere abilitata la mod_rewrite di Apache sul tuo server.
2. Crea un file `.htaccess` nella directory radice del tuo progetto (la stessa directory in cui si trova la cartella `public`), se non esiste già.
3. All'interno di questo file `.htaccess`, puoi aggiungere le regole di riscrittura delle URL che reindirizzeranno tutte le richieste al tuo file `index.php` nella cartella `public`.
Ecco un esempio di come potrebbe apparire il tuo file `.htaccess`:
```apache
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ public/index.php [L]
```
Queste regole di riscrittura reindirizzeranno tutte le richieste che non corrispondono a un file o a una directory esistente al tuo file `index.php` nella cartella `public`.
Inoltre, dovrai assicurarti che le risorse come fogli di stile, script JavaScript, immagini, ecc. siano correttamente caricate utilizzando percorsi relativi nella tua applicazione. Ad esempio, invece di usare un percorso assoluto come `/public/css/stile.css`, dovresti utilizzare un percorso relativo come `css/stile.css`.
Infine, assicurati di configurare correttamente le impostazioni del server web per puntare alla directory corretta come radice del tuo sito. Questo può essere fatto tramite la configurazione del server (ad esempio, il file `httpd.conf` per Apache) o attraverso il pannello di controllo del tuo provider di hosting, se lo stai utilizzando.