Se gestite un sito web su un server Apache, il file .htaccess è uno degli strumenti più potenti a vostra disposizione. Permette di controllare il comportamento degli URL, dai reindirizzamenti alla riscrittura pulita degli URL, senza dover modificare la configurazione del server.

In questo articolo tratteremo le basi del reindirizzamento e della riscrittura degli URL utilizzando .htaccess, con esempi e spiegazioni chiare.

Cos’è il file .htaccess?

.htaccess è l’acronimo di Hypertext Access. È un file di configurazione utilizzato nei server web basati su Apache che consente di apportare modifiche a livello di directory al comportamento del server.

È possibile:

  • Reindirizzare il traffico da un URL a un altro

  • Creare URL puliti (ad esempio, /about invece di /about.php)

  • Limitare l’accesso a determinate pagine

  • Attivare l’HTTPS

  • E molto altro ancora

Reindirizzare gli URL

1. 301 Reindirizzamento permanente

Da utilizzare quando una pagina è stata spostata in modo permanente a un nuovo URL.

Reindirizzamento 301 /vecchia-pagina.html https://yourdomain.com/new-page.html

2. 302 Reindirizzamento temporaneo

Da utilizzare quando il reindirizzamento è temporaneo.

Reindirizzamento 302 /temp-page.html https://yourdomain.com/coming-soon.html

3. Reindirizzamento con mod_rewrite

È possibile reindirizzare anche utilizzando RewriteRule:

RewriteEngine On
RewriteRule ^old-page$ https://yourdomain.com/new-page [R=301,L]

Riscrittura degli URL (URL puliti)

La riscrittura degli URL viene utilizzata per rendere gli URL più facili da usare e da utilizzare per la SEO. Ad esempio, invece di:

https://example.com/product.php?id=123

È possibile utilizzare:

https://example.com/product/123

1. Regola di base per la riscrittura

RewriteEngine On
RewriteRule ^product/([0-9] )$ product.php?id=$1 [L]

Questo dice ad Apache:

  • Quando qualcuno accede a /product/123

  • Riscrive internamente a product.php?id=123

2. Rimuovere l’estensione .php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.] )$ $1.php [L]

Questo permette agli utenti di accedere a example.com/about invece che a example.com/about.php.

Migliori pratiche

  • Eseguire sempre un backup del file .htaccess prima di apportare modifiche.

  • Usate [L] per impedire l’elaborazione di altre regole una volta trovata una corrispondenza.

  • Testate i vostri redirect con strumenti come httpstatus.io.

  • Non mescolate troppo Redirect e RewriteRule nello stesso blocco: preferite RewriteRule per coerenza.

Bonus: forzare l’HTTPS con .htaccess

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

In questo modo si obbliga tutto il traffico a utilizzare HTTPS, essenziale per la sicurezza moderna e per la SEO.

Conclusione

Il file .htaccess vi dà un controllo incredibile sul funzionamento dei vostri URL. Sia che si tratti di reindirizzare vecchie pagine, di ripulire URL disordinati o di proteggere il traffico, la padronanza di queste semplici regole può migliorare notevolmente le prestazioni e l’esperienza utente del vostro sito web.