{"id":25653,"date":"2026-02-06T10:00:00","date_gmt":"2026-02-06T09:00:00","guid":{"rendered":"https:\/\/soccorsowp.it\/blog\/permalink-wordpress-non-funzionano-soluzioni\/"},"modified":"2026-02-06T10:00:00","modified_gmt":"2026-02-06T09:00:00","slug":"permalink-wordpress-non-funzionano-soluzioni","status":"publish","type":"post","link":"https:\/\/soccorsowp.it\/blog\/permalink-wordpress-non-funzionano-soluzioni\/","title":{"rendered":"Come risolvere i permalink di WordPress che non funzionano"},"content":{"rendered":"<h1>Come risolvere i permalink di WordPress che non funzionano<\/h1>\n<p>Clicchi su un articolo del tuo sito e invece di vedere il contenuto appare un <strong>errore 404 &#8220;Pagina non trovata&#8221;<\/strong>? L&#8217;homepage funziona ma le pagine interne no? \u00c8 uno dei problemi pi\u00f9 comuni di WordPress e nella quasi totalit\u00e0 dei casi riguarda i <strong>permalink<\/strong>, ovvero la struttura degli URL del sito. La buona notizia \u00e8 che si risolve quasi sempre in pochi minuti. In questa guida analizzo tutte le cause dei permalink rotti e ti mostro come risolverle.<\/p>\n<h2>Cosa sono i permalink e come funzionano<\/h2>\n<p>I permalink sono gli <strong>URL permanenti<\/strong> delle pagine e degli articoli del tuo sito. WordPress offre diverse strutture di permalink configurabili da <span style=\"font-family: monospace\">Impostazioni \u2192 Permalink<\/span>. La struttura pi\u00f9 usata e consigliata per la SEO \u00e8 &#8220;Nome articolo&#8221;, che genera URL come <span style=\"font-family: monospace\">tuosito.it\/titolo-articolo\/<\/span>.<\/p>\n<p>Per funzionare, i permalink &#8220;belli&#8221; (qualsiasi struttura diversa da quella predefinita con <span style=\"font-family: monospace\">?p=123<\/span>) richiedono che il server web riscriva internamente gli URL. Su server Apache, questa riscrittura avviene tramite le regole nel file <span style=\"font-family: monospace\">.htaccess<\/span>. Su server Nginx, avviene tramite la configurazione del virtual host. Se questa riscrittura non funziona, WordPress non riesce a tradurre l&#8217;URL &#8220;bello&#8221; nel contenuto corretto e restituisce un errore 404.<\/p>\n<h2>Soluzione 1: rigenerare i permalink<\/h2>\n<p>La soluzione pi\u00f9 rapida e che risolve la maggior parte dei casi \u00e8 semplicemente <strong>rigenerare le regole di riscrittura<\/strong>:<\/p>\n<ol>\n<li>Vai su <span style=\"font-family: monospace\">Impostazioni \u2192 Permalink<\/span> nella dashboard di WordPress.<\/li>\n<li><strong>Non cambiare nulla<\/strong> nelle impostazioni.<\/li>\n<li>Clicca il pulsante <strong>&#8220;Salva modifiche&#8221;<\/strong> in fondo alla pagina.<\/li>\n<\/ol>\n<p>Questo semplice passaggio forza WordPress a riscrivere il file <span style=\"font-family: monospace\">.htaccess<\/span> con le regole di riscrittura corrette. Se il problema era un file .htaccess corrotto, sovrascritto o mancante, questa operazione lo risolve immediatamente. Prova a visitare una pagina interna per verificare.<\/p>\n<h2>Soluzione 2: verificare il file .htaccess<\/h2>\n<p>Se rigenerare i permalink non basta, il problema potrebbe essere pi\u00f9 profondo nel file <span style=\"font-family: monospace\">.htaccess<\/span>. Collegati via FTP alla cartella principale di WordPress e apri il file .htaccess. Il contenuto corretto per WordPress dovrebbe essere:<\/p>\n<pre># BEGIN WordPress\n&lt;IfModule mod_rewrite.c&gt;\nRewriteEngine On\nRewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]\nRewriteBase \/\nRewriteRule ^index.php$ - [L]\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule . \/index.php [L]\n&lt;\/IfModule&gt;\n# END WordPress<\/pre>\n<p>Se il file \u00e8 vuoto, mancante o contiene regole diverse, sostituisci il contenuto con il blocco sopra. Se WordPress \u00e8 installato in una sottocartella (es. <span style=\"font-family: monospace\">\/blog\/<\/span>), modifica <span style=\"font-family: monospace\">RewriteBase \/<\/span> in <span style=\"font-family: monospace\">RewriteBase \/blog\/<\/span> e l&#8217;ultima riga in <span style=\"font-family: monospace\">RewriteRule . \/blog\/index.php [L]<\/span>.<\/p>\n<p>Controlla anche che il file <span style=\"font-family: monospace\">.htaccess<\/span> sia <strong>scrivibile<\/strong> da WordPress (permessi 644 o 664). Se \u00e8 in sola lettura, WordPress non pu\u00f2 aggiornarlo quando salvi i permalink dalla dashboard.<\/p>\n<h2>Soluzione 3: verificare che mod_rewrite sia attivo<\/h2>\n<p>Su server <strong>Apache<\/strong>, i permalink richiedono il modulo <span style=\"font-family: monospace\">mod_rewrite<\/span> attivo. Su hosting condivisi \u00e8 quasi sempre attivo di default, ma su VPS o server dedicati potrebbe essere disabilitato. Per verificare, crea un file <span style=\"font-family: monospace\">info.php<\/span> nella root del sito con il contenuto:<\/p>\n<pre>&lt;?php phpinfo(); ?&gt;<\/pre>\n<p>Visita <span style=\"font-family: monospace\">tuosito.it\/info.php<\/span> e cerca &#8220;mod_rewrite&#8221; nella pagina. Se non \u00e8 presente, devi abilitarlo. Su sistemi Debian\/Ubuntu:<\/p>\n<pre>sudo a2enmod rewrite\nsudo systemctl restart apache2<\/pre>\n<p>Inoltre, la configurazione di Apache deve permettere l&#8217;uso di <span style=\"font-family: monospace\">.htaccess<\/span>. Nel file di configurazione del virtual host, la direttiva <span style=\"font-family: monospace\">AllowOverride<\/span> deve essere impostata su <span style=\"font-family: monospace\">All<\/span> anzich\u00e9 <span style=\"font-family: monospace\">None<\/span>. Se \u00e8 su <span style=\"font-family: monospace\">None<\/span>, Apache ignora completamente il file .htaccess e le regole di riscrittura non funzionano.<\/p>\n<p><strong>Ricorda:<\/strong> elimina il file info.php dopo la verifica. Lasciarlo accessibile espone informazioni sensibili sulla configurazione del server.<\/p>\n<h2>Soluzione 4: permalink su Nginx<\/h2>\n<p>Se il tuo sito \u00e8 ospitato su un server <strong>Nginx<\/strong>, il file .htaccess non viene utilizzato \u2014 Nginx non lo supporta. Le regole di riscrittura devono essere configurate direttamente nel blocco server della configurazione Nginx. La regola necessaria per WordPress \u00e8:<\/p>\n<pre>location \/ {\n    try_files $uri $uri\/ \/index.php?$args;\n}<\/pre>\n<p>Se WordPress \u00e8 in una sottocartella:<\/p>\n<pre>location \/blog\/ {\n    try_files $uri $uri\/ \/blog\/index.php?$args;\n}<\/pre>\n<p>Dopo aver modificato la configurazione, ricarica Nginx con <span style=\"font-family: monospace\">sudo nginx -t &amp;&amp; sudo systemctl reload nginx<\/span>. Su hosting gestiti con Plesk o pannelli simili, questa configurazione \u00e8 solitamente automatica, ma vale la pena verificare se i permalink non funzionano.<\/p>\n<h2>Soluzione 5: conflitti con plugin<\/h2>\n<p>Alcuni plugin possono <strong>sovrascrivere o corrompere le regole di riscrittura<\/strong>. Plugin di cache, di sicurezza o plugin che modificano gli URL (come WPS Hide Login o custom permalink plugins) possono interferire con il funzionamento standard dei permalink.<\/p>\n<p>Per verificare se un plugin \u00e8 la causa:<\/p>\n<ol>\n<li>Disattiva tutti i plugin dalla dashboard (o rinomina la cartella <span style=\"font-family: monospace\">wp-content\/plugins<\/span> via FTP).<\/li>\n<li>Rigenera i permalink (<span style=\"font-family: monospace\">Impostazioni \u2192 Permalink \u2192 Salva modifiche<\/span>).<\/li>\n<li>Verifica se i permalink funzionano.<\/li>\n<li>Se funzionano, riattiva i plugin uno alla volta, rigenerando i permalink dopo ogni attivazione, fino a identificare il plugin responsabile.<\/li>\n<\/ol>\n<h2>Soluzione 6: aggiornamento WordPress o migrazione<\/h2>\n<p>I permalink possono rompersi dopo un <strong>aggiornamento di WordPress<\/strong>, un cambio di tema o una <strong>migrazione<\/strong> del sito su un nuovo server. Dopo queste operazioni, \u00e8 buona pratica rigenerare sempre i permalink come prima cosa.<\/p>\n<p>Nel caso di una migrazione, il problema pi\u00f9 comune \u00e8 che il nuovo server usa una configurazione diversa. Se il vecchio server era Apache e il nuovo \u00e8 Nginx, le regole .htaccess non funzioneranno e devi configurare le regole try_files nella configurazione Nginx. Se il sito \u00e8 stato spostato da una sottocartella alla root (o viceversa), la RewriteBase nel .htaccess deve essere aggiornata di conseguenza.<\/p>\n<h2>Soluzione 7: permalink con caratteri speciali<\/h2>\n<p>Se solo <strong>alcuni articoli<\/strong> danno errore 404 mentre altri funzionano, il problema potrebbe essere nel singolo permalink. Caratteri speciali, accenti, punteggiatura insolita o slug molto lunghi possono causare problemi su alcuni server. In questo caso:<\/p>\n<ol>\n<li>Apri l&#8217;articolo o la pagina con il problema nella dashboard.<\/li>\n<li>Clicca su <strong>&#8220;Modifica&#8221;<\/strong> accanto al permalink.<\/li>\n<li>Semplifica lo slug: usa solo lettere minuscole, numeri e trattini. Evita accenti, caratteri speciali e slug pi\u00f9 lunghi di 5-6 parole.<\/li>\n<li>Aggiorna l&#8217;articolo e verifica.<\/li>\n<\/ol>\n<h2>Quando il problema \u00e8 pi\u00f9 profondo<\/h2>\n<p>In rari casi, i permalink non funzionano per motivi legati alla configurazione del server che vanno oltre le soluzioni standard: moduli PHP mancanti, configurazioni di sicurezza restrittive del server, firewall che bloccano determinati URL pattern o problemi con il reverse proxy. Se hai provato tutte le soluzioni sopra senza successo, il problema \u00e8 probabilmente a livello di configurazione server.<\/p>\n<p>Se i permalink del tuo sito WordPress non funzionano e le soluzioni standard non risolvono il problema, il team di <strong>SoccorsoWP<\/strong> pu\u00f2 diagnosticare la causa specifica analizzando la configurazione del tuo server e ripristinare il corretto funzionamento degli URL. <a href=\"https:\/\/soccorsowp.it\/ticket\/\">Apri un ticket<\/a> e risolviamo il problema insieme.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come risolvere i permalink di WordPress che non funzionano Clicchi su un articolo del tuo sito e invece di vedere il contenuto appare un errore&#8230;<\/p>\n","protected":false},"author":1,"featured_media":25654,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"Permalink WordPress non funzionano: tutte le soluzioni","_seopress_titles_desc":"I permalink di WordPress danno errore 404? Scopri come risolvere: rigenerazione .htaccess, mod_rewrite, configurazione Nginx, conflitti plugin e altro.","_seopress_robots_index":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-25653","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-domande-frequenti"},"_links":{"self":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/comments?post=25653"}],"version-history":[{"count":0,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25653\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media\/25654"}],"wp:attachment":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media?parent=25653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/categories?post=25653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/tags?post=25653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}