PDA

Visualizza la versione completa : html > PHP perdita visibilità su google?


andreas88
24-01-2018, 12:05
Salve, ho realizzato un piccolo sito web completamente in html.
Dato che ho necessità di utilizzare un codice di programmazione (php) ho necessità di convertire tutte le pagine che ho creato da .htm a .php.
Vorrei sapere facendo questa conversione perdo la mia visibilità sul motore di ricerca che nel tempo ho acquisito?
Faccio un esempio, se con una parola chiave la mia attuale pagina (.htm) si trova in seconda pagina di Google, convertendola in .php perderò la mia posizione?
Grazie
Andrea

rigby76
24-01-2018, 18:25
Se cambi anche solo l'estensione dei file agli occhi dei motori le vecchie pagine spariranno rendendo codice 404 (pagina non trovata) e i contenuti si sposterebbero su nuovi indirizzi. Sicuramente questa situazione porterebbe ad una perdita di traffico quantomeno temporanea e possibilmente ad una perdita di posizionamento. La cosa corretta da fare in casi come questo è impostare dei redirect 301 dai vecchi indirizzi ai nuovi. In pratica accedendo ad ogni pagina .htm si deve essere rimandati dal server all'omologa .php con codice 301.

andreas88
25-01-2018, 09:46
Come procedo allora, inserendo al seguente linea di codice in tutte le pag. html?
< META HTTP-EQUIV=Refresh CONTENT="0"; URL=http://www.nuovosito.com"
O vi sono altri metodi migliori?

rigby76
25-01-2018, 10:46
Il codice che hai scritto tu è l'ultima risorsa, si dice sia letto da Google ma non è ottimale. Un redirect 301 lo fai in genere tramite il server. Se sei su Apache su Linux ad esempio puoi usare il file .htacces. Altri server hanno altre modalità peculiari.

Tieni presente che in alternativa potresti verificare se puoi configurare il server in modo da dare in pasto all'interprete PHP anche i file con estensione .htm, potrebbe risolvere i tuoi problemi senza necessità di fare i redirect.

andreas88
25-01-2018, 11:42
E' chiaro, ma praticamente? io sto su Aruba con Linux come devo procedere al fine di evitare la linea di codice html scritta in precedenza?

rigby76
25-01-2018, 12:05
In rete trovi decine di tutorial su come impostare il redirect con htaccess.

La modalità più semplice, quella per inserire un redirect da una singola pagina ad un'altra, prevede questo codice:


Redirect 301 /vecchio-url.html http://www.dominio.it/nuovo-url.html


Nel tuo caso potrebbe essere più utile usare le regole di mod_rewrite, dato che credo che il tuo host lo supporti. Potrebbe essere qualcosa del genere, per tutte le pagine del sito:


RewriteEngine On
RewriteRule ^(.*)\.html$ $1.php [L]


Questi sono codici trovati al volo in rete e non testati (da me).

Buon lavoro.

andreas88
27-01-2018, 17:34
Ho trovato questo sito: https://www.htaccessredirect.net/ dove ho compilato solo "Domain Name", "Old File Path" e "New File Path" inserendo rispettivamente www.miosito.it (http://www.miosito.it), index.htm, index.phpe, ho poi cliccato su "genera codice" e mi ha generato il seguente:

//Rewrite to www
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^miosito.it[nc]
RewriteRule ^(.*)$ http://www.miosito.it/$1 [r=301,nc]

//301 Redirect Old File
Redirect 301 /index.htm /index.php

Credo sia il passaggio corretto?
Grazie

rigby76
28-01-2018, 12:33
Il primo dei due blocchi fa redirect per inserire il www dove non c'è, quindi non è attinente.

Il secondo vale solamente per la pagina index.

Quindi, o inserisci il secondo codice tante volte quante sono le pagine (modificando index con il nome della pagina in questione), altrimenti il codice da utilizzare è simile a quello che ti ho indicato nel post precedente.

andreas88
22-10-2018, 08:55
Il primo dei due blocchi fa redirect per inserire il www dove non c'è, quindi non è attinente.

Il secondo vale solamente per la pagina index.

Quindi, o inserisci il secondo codice tante volte quante sono le pagine (modificando index con il nome della pagina in questione), altrimenti il codice da utilizzare è simile a quello che ti ho indicato nel post precedente.

Ho proceduto in questo modo:

Ho creato con il blocco notes di Windows un file e ci ho scritto:
"RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} (.*)\.htm
RewriteRule ^(.*)\.htm $1.php
//301 Redirect Old File
Redirect 301 vecchiofile.htm http://www.sitoweb/nuovofile.php"

Salvato il file con nome .htaccess e caricato nella cartella principale del server con il programma Filezilla.
Fatto ciò ho eliminato manualmente il vecchiofile.htm e caricato il nuovo file "nuovofile.php"

Credo vada bene in questo modo vero?
Andrò poi ad aggiornare la linea "Redirect 301 vecchiofile.htm http://www.sitoweb/nuovofile.php" aggiungendo ogni singola pagina del sito giusto?

Grazie Mille

rigby76
22-10-2018, 09:07
La prima parte del codice (prime 4 righe), contiene già un codice che dovrebbe fare il redirect per tutte le pagine del sito. Uso il condizionale perché lo dovrei prima testare, ma se funziona non ti serve altro.

In alternativa puoi usare l'ultima riga e replicarla per tutte le pagine del sito. Attenzione che credo che il nome del vecchio file debba iniziare con lo slash (/), quindi sarebbe:
Redirect 301 /vecchiofile.htm http://www.sitoweb/nuovofile.php

Riassumendo, con quel codice stai facendo la stessa cosa due volte, mentre ne basta una. O usi la prima tecnica o la seconda, quella che ti è più comoda o che riesci a far funzionare.

Loading