Usare “.htaccess” per riscrivere le estensioni delle pagine
Attenzione
Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.
Nella guida di oggi torniamo a parlare di “.htaccess“, questa volta utilizzeremo il “mod_rewrite” per cambiare l’estensione ai file in modo che effettuando una richiesta a “file.html” la richiesta venga girata a “file.php” lasciando inalterata la URL.
Il tutorial di oggi è molto breve e molto facile. Le seguenti righe di codice fanno tutto il lavoro:
Options +FollowSymlinks RewriteEngine on RewriteRule ^(.*)\.html$ $1.php [nc]
Salviamo il file chiamandolo “.htaccess“, all’interno della directory in cui le estensioni debbano essere riscritte e proviamo a richiamare un file PHP dandogli come estensione HTML.
Se tutto funziona non dovrebbero esserci differenze fra il file PHP e il file HTML. In realtà si tratta di un unico file PHP “mascherato” da HTML. Ora tutti i file con estensione PHP presenti nella directory in cui risiede il file “.htaccess” verranno visualizzati anche se richiamati con l’estensione HTML.
Per avere un’idea del funzionamento questa è la pagina PHP originale, inserendo i due termini nei box verrà richiamato un secondo file chiamato “result.html“. Sul server, invece, è caricato il file “result.php” che mostra i termini digitati nella pagina precedente. Si, questa procedura funziona anche con gli script. Nell’URL l’utente continuerà a vedere “result.html“.
Questa tecnica è molto utile ad esempio nel caso in cui i link interni del sito su cui stiamo lavorando puntassero ad una pagina HTML, che in origine era statica, ma ora vogliamo renderla dinamica. Cambiare i link di tutte le pagine sarebbe un enorme spreco di tempo, in questo modo sarà sufficiente caricare un singolo file “.htaccess” con queste istruzioni e la pagina PHP verrà richiamata con tutte le sue caratteristiche anche se l’estensione visualizzata continuerà ad essere HTML.
7 commenti
TheJoe · 23 Ottobre 2011 alle 10:05 AM
A quanto pare mi sbagliavo. Il forum di Giorgio Tave è chiaramente più indicato alla tua domanda.
Però ti segnalo un’altra volta che se decidi di oscurare le vecchie pagine e tenere solo quelle nuove potrebbe avere ripercussioni sui motori di ricerca, al contrario se lasciassi le vecchie pagine visitabili non dovresti avere problemi. Tutto questo “secondo me”, forse sbaglio.
marco · 22 Ottobre 2011 alle 8:58 PM
la sitemap e il file robort.txt si lasciano invaritati oppure bisogna effettuare la modifica dell’estensione?
TheJoe · 22 Ottobre 2011 alle 8:21 PM
Rimane di certo tutto invariato per i motori di ricerca, le pagine in “html” non vengono oscurate, come ti ho già detto se non imposti una ulteriore regola specifica nell’htaccess gli stessi contenuti saranno raggiungibili con l’una o l’altra estensione (html o php).
Se non ti sembra logico sei libero di obiettare, ma almeno usa qualche argomento come ho fatto io, non “sta a vedere”.
marco · 22 Ottobre 2011 alle 7:42 PM
bhe, di certo il cambiamento c’e rinominado le pagine in .php. Sta vedere se utilizzando quel codice si farà in modo che tutto rimane invariato per i motori di ricerca. Ti ringrazio cmq per avermi risposto
TheJoe · 22 Ottobre 2011 alle 5:33 PM
In realtà non sono un grande esperto di SEO (;)) ma per come la vedo io non dovresti essere penalizzato, alla fine al motore di ricerca non cambia nulla, le vecchie pagie (a meno che tu non scriva altre regole) rimangono a lui accessibili. Ma potrei sbagliarmi.
marco · 22 Ottobre 2011 alle 4:55 PM
mi spiego meglio; rinonimo pagine da .html a php ed inserisco il codice nell .htaccess per farsì che le pagine continuano ad essere viste ed indicizzate in .html
marco · 22 Ottobre 2011 alle 4:24 PM
Ottima guida ma ho un dubbio. Se rinomino le pagine già indicizzate .html in php ed inserisco il codice nell .htaccess cosa succede nei motori di ricerca? perdo posizioni? pagerank?