
🔗 Come riparare i permalink non funzionanti di WordPress
Visiti un sito, cliccate su un link verso un articolo nuovo e invece del testo vedete una pagina bianca con "404 Page Not Found". Una scena familiare.
I Permalink in WordPress sono costruiti in modo semplice, ma si rompono con una facilità allarmante. Un plugin difettoso, un aggiornamento fallito o una modifica accidentale al file .htaccess e l'intero sito si trasforma in una raccolta di URL non funzionanti. Secondo il forum ufficiale di supporto WordPress, gli errori di struttura dei permalink sono tra i cinque problemi più frequenti.
Di seguito trovate un algoritmo di diagnosi e riparazione, dal rapido reset delle impostazioni alla modifica manuale delle configurazioni del server. Ogni passaggio è stato testato su siti reali. Niente panico.
💡 Panoramica rapida:
- Reimpostate le impostazioni dei permalink nel pannello di amministrazione con un clic: per la maggior parte dei siti il problema scompare all'istante
- Se il reset non ha funzionato, rinominate
.htaccesse reimpostate di nuovo: WordPress creerà un file pulito con le regole di riscrittura corrette - Verificate i plugin per esclusione: disattivateli tutti insieme e riattivateli uno per uno dopo ogni reset dei permalink
- Su server Apache, abilitate manualmente
mod_rewritee aggiungeteAllowOverride Allalla configurazione dell'host virtuale
Perché i permalink di WordPress smettono di funzionare
Un permalink è un URL immutabile per un articolo, una pagina o una categoria. WordPress memorizza la struttura dei permalink nel database e serve URL "leggibili" tramite il modulo mod_rewrite del server web Apache. Un'interruzione in qualsiasi anello di questa catena produce un errore 404.
Installazione di un nuovo plugin. Alcuni plugin interferiscono con il meccanismo di formazione degli URL: riscrivono .htaccess, aggiungono le proprie regole di redirect o entrano in conflitto con estensioni già attive. I plugin SEO, le soluzioni di caching e i plugin di sicurezza sono in una zona a rischio particolare: lavorano tutti con gli URL a basso livello.
Aggiornamento del core, del tema o dei plugin. Un aggiornamento maggiore di WordPress o un cambio di versione PHP sull'hosting rende i vecchi plugin incompatibili. Il risultato è un conflitto che manda in crash le regole di riscrittura. Non potete saltare gli aggiornamenti di sicurezza, ma prima di ogni aggiornamento maggiore fate un backup e verificate la compatibilità su una copia di staging.
Spostamento di un sito su un nuovo dominio o server. La migrazione di WordPress è una delle cause più comuni di link non funzionanti. I percorsi assoluti cambiano, cambiano i dati serializzati nel database e le impostazioni del server web. Anche l'aggiunta di un certificato SSL dopo la migrazione può rompere i permalink, perché richiede la modifica di .htaccess per il redirect HTTP→HTTPS. Se di recente avete spostato un'installazione WordPress in una sottodirectory, controllate la struttura dei permalink subito dopo la migrazione.
Ripristino di un backup. Ripristinare un sito da un backup a volte resuscita anche vecchi problemi. Se il backup è stato fatto prima di configurare i permalink, gli errori 404 tornano. Nemmeno i plugin di backup più avanzati garantiscono un ripristino perfetto delle regole di riscrittura dopo migrazioni complesse.
File .htaccess corrotto. Il file .htaccess è il collegamento tra WordPress e Apache. Memorizza le direttive mod_rewrite responsabili degli URL "leggibili". Un plugin scrive spazzatura, cancellate accidentalmente il file via FTP e alcuni pannelli di hosting lo resettano quando si cambiano impostazioni. Senza un .htaccess funzionante, i permalink diventano ?p=123.
Come riparare i permalink non funzionanti: guida passo passo
Abbiamo coperto le cause, ora passiamo alle soluzioni. Procedete in ordine: applicate ogni passaggio successivo solo se il precedente non ha funzionato.
Passaggio 1. Reimpostare le impostazioni dei permalink
Il metodo più rapido e sicuro. WordPress memorizza la struttura dei permalink nel database e, quando si salvano le impostazioni, rigenera le regole di riscrittura. Gli sviluppatori chiamano questo processo "flush delle rewrite rules".
Andate nel pannello di amministrazione, navigate su Impostazioni → Permalink:

Passate temporaneamente a qualsiasi altra struttura, per esempio "Semplice" invece di "Nome articolo", e cliccate Salva modifiche. Poi ripristinate l'opzione originale e salvate di nuovo. Non dovete cambiare le impostazioni in modo permanente: ciò che conta è il fatto di salvare, che costringe WordPress a ricostruire le regole.
Ricaricate il sito e verificate se gli articoli si aprono. Funziona? Problema risolto. No, andate avanti.
Passaggio 2. Verificare e ricreare il file.htaccess
Se il reset non ha aiutato, l'origine del problema è quasi certamente in .htaccess. Il file si trova nella root del sito, nello stesso posto di wp-config.php e delle cartelle wp-content e wp-includes.

Collegatevi al server via FTP (FileZilla, WinSCP) o tramite il file manager nel pannello di hosting:

Trovate .htaccess, cliccate con il tasto destro e rinominate in .htaccess_old. Non cancellate il file: potrebbe contenere regole critiche come il redirect HTTP→HTTPS o impostazioni di compressione:

Dopo la rinomina, WordPress smette di vedere il vecchio file. Andate nel pannello di amministrazione e reimpostate i permalink come nel Passaggio 1: il sistema creerà un nuovo .htaccess pulito con le regole di riscrittura corrette. Conservate il vecchio file come copia di backup.
Passaggio 3. Trovare il plugin in conflitto
Il problema è comparso dopo aver installato un plugin specifico? Disattivatelo e reimpostate di nuovo i permalink: molto probabilmente è sufficiente.
Quando il colpevole è sconosciuto, usate il metodo per esclusione:

Disattivate tutti i plugin in una volta. Reimpostate i permalink. Verificate il sito: se funziona, il problema è in uno dei plugin. Riattivateli uno per uno, dopo ognuno reimpostate le impostazioni e verificate il sito. Il plugin dopo il quale i link si rompono di nuovo è la causa.
Sostituite il plugin in conflitto trovato con un'alternativa dalla directory di WordPress.org. Segnalate il problema allo sviluppatore: spesso sono a conoscenza di incompatibilità e possono suggerire una soluzione alternativa.
Passaggio 4. Configurare il server: AllowOverride e mod_rewrite
Se i passaggi precedenti non hanno aiutato e state usando Apache, il problema potrebbe essere nelle impostazioni dell'host virtuale.
Per prima cosa, assicuratevi che il modulo mod_rewrite sia abilitato. È ciò che trasforma gli URL "leggibili" in query che WordPress comprende. Verificatelo e attivatelo con il comando:
1 sudo a2enmod rewrite
Se il modulo era già abilitato, apparirà un avviso: è normale. Ora riavviate Apache:
1 sudo systemctl restart apache2
Su CentOS/RHEL il comando di riavvio è diverso:
1 sudo systemctl restart httpd
Il secondo componente necessario è la direttiva AllowOverride All. Permette al file .htaccess di sovrascrivere la configurazione del server all'interno della directory del sito. Aprite il file di configurazione di Apache: su Ubuntu è /etc/apache2/sites-available/your-site.conf, su CentOS è /etc/httpd/conf/httpd.conf. Trovate la sezione <Directory> e portatela a questa forma:
1 <Directory /var/www/your-site/> 2 AllowOverride All 3 </Directory>
Sostituite il percorso /var/www/your-site/ con il percorso effettivo della cartella root di WordPress sul vostro server. Dopo la modifica, riavviate Apache con il comando sopra, poi reimpostate i permalink nel pannello di amministrazione.
Queste due azioni lato server, AllowOverride All più mod_rewrite, chiudono virtualmente tutti gli scenari rimanenti di permalink non funzionanti su Apache.
Video: ripristino dei permalink passo dopo passo
Se preferite guardare piuttosto che leggere, ecco una breve guida che mostra l'intero processo, dal reset delle impostazioni dei permalink al ripristino di .htaccess su un sito reale:
⁉️🤔 Domande frequenti
Perché l'errore 404 rimane dopo aver reimpostato i permalink?
Il reset tramite pannello di amministrazione riscrive le regole di riscrittura nel database. Ma se
.htaccessè fisicamente inaccessibile in scrittura, permessi di accesso errati, WordPress non può aggiornare il file sul server. Verificate i permessi: di solito sono richiesti 755 per le directory e 644 per i file. Assicuratevi anche che.htaccessesista fisicamente: dopo la rinomina nel Passaggio 2, WordPress ne crea uno nuovo al reset successivo. Il reset in sé non cambia gli URL degli articoli esistenti e non rompe l'indicizzazione.
Posso semplicemente cancellare.htaccess?
No. Senza
.htaccesssu un server Apache, WordPress ricade su link "semplici" come?p=123: questo è brutto e danneggia la SEO. L'ordine corretto: rinominate il vecchio file conservandone una copia di backup, poi reimpostate le impostazioni dei permalink nel pannello di amministrazione. WordPress creerà automaticamente un nuovo.htaccess. Non cancellate mai il file senza la possibilità di ripristinarlo: potrebbe contenere regole critiche di redirect HTTP→HTTPS o impostazioni di compressione.
Cosa fare se il sito è su Nginx?
Su Nginx non esiste il file
.htaccess: tutte le regole di riscrittura sono scritte nella configurazione del server. Il blocco standard per WordPress:location / { try_files $uri $uri/ /index.php?$args; }. Verificate il file di configurazione del sito (di solito/etc/nginx/sites-available/your-site), aggiungete questo blocco alla sezioneservere ricaricate Nginx:sudo systemctl reload nginx. I passaggi 1 e 3, reset dei link e verifica dei plugin, funzionano per Nginx esattamente come per Apache.
Quale plugin rompe più spesso i permalink?
Statisticamente, guidano i plugin SEO, che manipolano direttamente gli URL, e le soluzioni di caching: creano copie statiche delle pagine e possono "ricordare" la versione rotta. Al terzo posto ci sono i plugin di sicurezza che modificano
.htaccessper bloccare richieste sospette. Dopo aver disabilitato un plugin di caching, assicuratevi di svuotare la cache del browser o aprite il sito in modalità incognito: una versione statica in cache con 404 potrebbe essere mostrata anche dopo la correzione.
Devo verificare l'integrità del database?
In rari casi, la causa è una tabella
wp_optionscorrotta dove sono memorizzate le impostazioni dei permalink. Se nessuno dei metodi descritti ha aiutato, andate su phpMyAdmin, trovate la tabellawp_optionse verificate la voce conoption_name = 'rewrite_rules'. Se il valore sembra spazzatura o un oggetto serializzato corrotto, cancellate questa voce, poi reimpostate le impostazioni dei permalink nel pannello di amministrazione. WordPress ricreerà le regole di riscrittura da zero. La maggior parte degli utenti non avrà bisogno di questo passaggio: la stragrande maggioranza dei problemi si risolve con i metodi 1-3.
Cosa fare se nulla ha aiutato
Siamo passati da un semplice reset delle impostazioni alla configurazione del server Apache e Nginx. Per la maggioranza assoluta dei siti, uno di questi metodi risolve il problema.
Se gli errori 404 persistono, contattate il supporto tecnico del vostro hosting. Descrivete il problema ed elencate i passaggi che avete già eseguito. Spesso la causa è nelle specificità dell'ambiente di hosting: mod_rewrite disabilitato a livello di provider, configurazione PHP-FPM non standard o regole firewall personalizzate che bloccano le richieste a index.php. Il supporto dell'hosting vede il lato server a voi nascosto e risolve questi problemi in pochi minuti.
La regola principale da ricordare: reimpostate i permalink → rinominate.htaccess → reimpostate di nuovo. Questa sequenza di due azioni risolve la maggior parte dei casi e non richiede né conoscenze speciali né accesso al server. Iniziate con questa la prossima volta e molto probabilmente non avrete bisogno di andare oltre.



