Cosa sono i permalinks e come gestirli in wordpress

Cosa sono i permalinks? Perché sono importanti? Come gestirli al meglio con wordpress? Cos’è e a cosa serve il mod_rewrite? Approfondiamo la conoscenza dei permalinks rispondendo a queste ed altre domande.


Cosa sono i permalinks e perché sono importanti?

La pagina iniziale (index/indice) del nostro blog è raggiungibile facilmente tramite l’indirizzo principale del blog, qualcosa del tipo http://www.esempiosito.it  Questa pagina è però per sua natura soggetta a frequenti cambiamenti e/o aggiornamenti. Risulta quindi importante avere un modo per raggiungere i singoli post anche quando non sono più elencati nella pagina principale. Questo si ottiene assegnando ad ogni post/articolo un indirizzo univoco che si presume rimanere valido per molto tempo, questo indirizzo prende il nome di “Permalink”.

Di base WordPress propone un indirizzo del tipo: http://www.sito.it/?p=12 Questo indirizzo rappresenta nella parte sinistra il dominio del blog e nella parte destra (dopo l’ultima /) i parametri che indicano quale articolo voglio visualizzare, nell’esempio sopra mi collego al blog www.esempiosito.it e chiedo di visualizzare l’articolo numero 12. Tutto molto semplice ma, c’e’ sempre un ma, non è esattamente quello che possiamo considerare un bell’indirizzo. Poco leggibile, non rappresenta nulla del contenuto dell’articolo e, cosa assai peggiore, sembra che gli indirizzi contenenti parametri non vadano troppo a genio ai motori di ricerca. Questo problema dei motori di ricerca probabilmente è quasi del tutto superato, comunque meglio non rischiare di non veder indicizzate le nostre pagine. Sarebbe preferibile avere indirizzi che, tramite parole chiave, identifichino maggiormente il contenuto della pagina, possibilmente senza l’uso di parametri. Ad esempio se nell’articolo parlo di alberi vorrei avere la parola “alberi” nel suo indirizzo, eventualmente anche l’anno di pubblicazione ed altre informazioni.

Ed ecco wordpress correrci in aiuto con la possibilità di ridefinire la struttura dei permalinks dei singoli articoli. Dal pannello di amministrazione, Opzioni>Permalink. E’ sempre possibile modificare gli indirizzi per renderli simili a questo: http://www.sito.it/index.php/2007/natura/alberi-in-autunno/

Non male no? Decisamente più leggibile per gli utenti e più “apprezzato” dai motori di ricerca. Se non fosse per quel “index.php” sarebbe davvero perfetto. Intendiamoci, avere la scritta index.php ai fini pratici non cambia nulla, sarebbe solo esteticamente più gradevole non averlo. Ok, ma come toglierlo? Possiamo provare a modificare il campo personalizzato in Opzioni>Permalink e passare da /index.php/%year%/%postname%/ a /%year%/%postname%/ Proviamo a visualizzare il nostro blog e vediamo se tutto fila liscio. Tutto bene? Perfetto!!

In molti casi non sarà così ed il server restituirà l’errore: 404 – File not Found Problema! A questo punto abbiamo bisogno di una estensione di Apache chiamata: mod_rewrite. In generale le macchine linux utilizzano Apache come web server ed hanno il mod_rewrite attivato. In caso provate a chiedere agli amministratori del vostro servizio di host, sapranno sicuramente darvi indicazioni in merito. Le macchine windows che utilizzano apache allo stesso modo non dovrebbero aver problemi, se invece hanno come server web IIS fate un salto a questo indirizzo, sono disponibili links a pagine con diverse soluzioni.

Torniamo ad Apache ed al mod_rewrite. Il mod_rewrite è una estensione che permette di reindirizzare al volo un indirizzo verso un altro. Esempio: arriva una richiesta per la pagina …./natura/alberi/ ed automaticamente vengo reindirizzato su …./?p=12 il tutto in maniera trasparente per l’utente, il quale continuerà a visualizzare /natura/alberi/ nella barra degli indirizzi. WordPress nel momento in cui vengono effettuate modifiche nella struttura dei permalinks prova a creare un file chiamato .htaccess in cui memorizzerà le direttive per il reindirizzamento. Se siete giunti fin qui nella lettura probabilmente ci sono problemi nella creazione o nell’accesso in scrittura del file .htaccess Sarà quindi necessario crearlo manualmente ed inserirvi il giusto contenuto affinché tutto funzioni alla perfezione. Creiamo un semplice file di testo chiamandolo 1.htaccess poi lo copiamo (con un client FTP) nella stessa directory in cui si trova il file index.php (di solito la directory principale del sito), a questo punto lo rinominiamo eliminando “1″ all’inizio. Il file deve chiamarsi semplicemente .htaccess (niente estensione alla fine, nessun .txt). L’inserimento del numero 1 all’inizio del nome è per evitare problemi che possono verificarsi con nomi di files che iniziano con un punto. Procediamo ora alla sua modifica editandolo con un qualunque editor ed inserendo al suo interno quanto segue:

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Si tratta di un codice contenente norme di reindirizzamento standard, di solito è sufficiente affinché tutto funzioni. Nel caso in cui wordpress non risieda nella directory principale ma si trovi in una sottodirectory sarà necessario apportare alcune semplici modifiche al codice. Ad esempio se wordpress si trova in www.miosito.it/wordpress dovrò modificarlo in questo modo (4° e 7° riga):

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /wordpress

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /wordpress/index.php [L]

</IfModule>

# END WordPress

Maggiori informazioni (in inglese) sull’url rewriting in questo sito. In alternativa è possibile inserire il codice all’interno del file di testo prima di caricarlo sul nostro spazio web.

A questo punto tutto dovrebbe funzionare per il meglio.

Buon divertimento con i permalinks :)

Ti piace questo articolo? Consiglialo ad altri utenti:

3 Responses to “Cosa sono i permalinks e come gestirli in wordpress”


  • Grazie a questo articolo sono riuscito a risolvere il problema!
    Infatti dopo aver personalizzato la struttura dei permalinks con “/%year%/%postname%/” dal pannello di amministrazione di WordPress ottenevo sempre un “Internal Server Error”, e mi stavo arrovellando su come fare per trovare la soluzione (ci tengo all’indicizzazione dei miei futuri articoli).
    Adesso, dopo aver creato il file .htaccess e averlo messo nella root del blog, dove c’è l’index.php, tutto sembra funzionare alla perfezione!
    Grazie 1.000.000 Ainu!!!!!

  • Felice di essere stato d’aiuto :)

  • Ꮪono 1 settimana chee giro per la rete e il tuo articօlo è l’unica
    cosa apprezzabile che vedo. Effettivamente pregevole.
    Se tutte le persone chee creano blog badаsssero a produrre materiale
    brillante come il tuo la rete sarebbe di sіcuro più efficace.

    Continua così.

Leave a Reply