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

  • Abilitare 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

Utilizzare questa opzione quando il reindirizzamento è temporaneo.

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

3. Reindirizzamento con mod_rewrite

Si può anche reindirizzare usando RewriteRule:

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

Riscrittura di 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.

  • Usare [L] per impedire l’elaborazione di ulteriori 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.

Conclusione

Il file .htaccess è un potente strumento di configurazione che offre un controllo granulare sul vostro sito web basato su Apache, spesso senza toccare i file principali del server. Sia che vogliate reindirizzare pagine obsolete, applicare l’HTTPS, migliorare la SEO attraverso URL puliti o limitare l’accesso ad aree sensibili, .htaccess rende tutto questo possibile con poche righe di codice.

La comprensione e la padronanza anche solo di una manciata di direttive .htaccess può migliorare notevolmente le prestazioni, la sicurezza e l’usabilità del vostro sito web. Permette di rispondere rapidamente alle modifiche della struttura del sito, di prevenire i link non funzionanti e di mantenere un’esperienza coerente per i visitatori.

Esempio pratico: Reindirizzamento di vecchi URL a nuovi URL

Immaginate di aver ristrutturato il vostro blog e di voler reindirizzare il traffico da un post obsoleto a una nuova posizione:

Reindirizzamento 301 /old-blog-post https://www.example.com/blog/new-post

Questa semplice riga assicura che:

  • I motori di ricerca trasferiscano il valore SEO al nuovo URL

  • Gli utenti non finiscano su una pagina 404

  • I reindirizzamenti avvengono istantaneamente con un codice di stato 301 (permanente)