Pagine 404 random dopo migrazione

Migrazione fatta, ma alcune pagine restituiscono 404

Una migrazione di sito web dovrebbe preservare URL e contenuti. Talvolta però, dopo aver spostato il sito su nuovo hosting o cambiato dominio, alcune pagine improvvisamente restituiscono 404. Il problema raramente è nel database (che è stato migrato): più spesso è in configurazioni di server o regole di rewrite.

htaccess o nginx.conf assenti

Su Apache, le regole di permalink WordPress sono in .htaccess. Il file è nascosto e spesso viene dimenticato nei trasferimenti FTP. Verifica che esista nella root del sito. Se manca, vai in WordPress Admin > Impostazioni > Permalink > Salva. WordPress rigenera .htaccess automaticamente.

mod_rewrite non abilitato

Su nuovo server Apache, verifica a2enmod rewrite. Nella VirtualHost o in apache2.conf assicurati che ci sia AllowOverride All nella directory del sito. Senza questo, .htaccess viene ignorato e i permalink di WordPress restituiscono 404. Riavvia Apache dopo modifiche.

Permalink rotti su Nginx

Nginx non legge .htaccess. Le regole di rewrite vanno configurate nel server block:

location / {
try_files $uri $uri/ /index.php?$args;
}

Senza questa, tutte le URL WordPress diverse da home restituiscono 404.

Maiuscole/minuscole nei file

Spostando da Windows (case-insensitive) a Linux (case-sensitive), file con nomi tipo Foto.JPG non vengono trovati se l'HTML richiede foto.jpg. Verifica la corrispondenza esatta dei nomi. Strumenti come find . -name "*.JPG" identificano file con estensione maiuscola.

Permessi file errati

Dopo trasferimento i permessi possono essere diversi. Se PHP non può leggere alcuni file, restituisce 403 o 500 mascherato in 404. Imposta i permessi corretti: find . -type d -exec chmod 755 {} \; per directory e find . -type f -exec chmod 644 {} \; per file. Eccezione: wp-config.php a 640.

Mappatura redirect 301

Se la migrazione include cambio di dominio o struttura URL, configura redirect 301 dai vecchi URL ai nuovi. Plugin come Redirection per WordPress facilitano la gestione. Strumenti come Screaming Frog identificano URL che restituiscono 404 dopo migrazione, da mappare ai nuovi.

Asset paths nel database

WordPress salva URL assoluti nel database. Dopo cambio dominio, vecchi URL puntano al dominio precedente. Usa wp-cli: wp search-replace 'https://vecchio.it' 'https://nuovo.it' --all-tables. Considera anche tabelle serializzate: il comando wp-cli gestisce correttamente la serializzazione.

Cache CDN obsoleta

Cloudflare e altre CDN cachano risposte 404 per qualche ora. Anche dopo aver corretto le pagine, le CDN servono ancora 404 dalla cache. Esegui purge totale dopo migrazione. Su Cloudflare: Caching > Configuration > Purge Everything.

Hai bisogno di aiuto?

Se il tuo sito ha problemi di accesso, il team di G Tech Group può aiutarti. Contattaci tramite il modulo di contatto.

Hai trovato utile quest'articolo?