FAQ - Come si nasconde l'estensione .html da una pagina web?

Sebbene in realtà non apporti alcun reale beneficio rimuovere l'estensione dal nome della pagina web, e anzi in alcuni casi potrebbe creare problemi, ad esempio laddove i collegamenti fossero senza .html e il file .htaccess fosse cancellato o aggiornato rimuovendo il codice, laddove si volesse comunque rimuovere il nome dell'estensione dalla pagina, basterà creare, laddove non ci fosse, un file .htaccess (nota: c'è un punto prima di htaccess) all'interno della cartella /public_html e inserire il seguente codice:


Codice per rendere accessibili le pagine senza .html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.html [NC,L]

Il codice di sopra renderà accessibili le pagine .html anche senza l'aggiunta di .html.


Codice con redirect automatico verso la versione senza .html

Se si volesse anche reindirizzare automaticamente tutte le pagine .html verso la versione senza .html, basterà invece utilizzare il codice a seguire:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.html [NC,L]
RewriteCond %{THE_REQUEST} .html
RewriteRule ^(.*).html$ /$1 [R=301,L]

Nota

L'esempio riportato fa riferimento alle pagine .html, ma lo stesso principio è applicabile anche ad altri tipi di estensioni, come .htm o .php. Va solo sostituito .html nel codice con l'estensione di riferimento.