Utilizzare i Permalink
On this page... (hide)
1. Cosa sono i Permalink?
I Permalink sono gli URL permanenti ai singoli post del tuo blog, alle categorie e a post pubblicati su altri blog. Un permalink è ciò che un altro blogger userà per fare riferimento ad un tuo articolo (o categoria), oppure un link che puoi inviare via email per segnalare un tuo post. In particolare, quando sono usati per creare un link verso un singolo articolo, una volta che è stato pubblicato, l'URL deve rimanere sempre lo stesso. Di qui l'uso del termine "perma" nel nome. Per saperne di più: Permalink Gradevoli
2. Struttura dei Tag
Per attivare e personalizzare i tuoi permalink, vai in Amministrazione -> Opzioni -> Permalink e usa i seguenti tag.
%year%: L'anno del post, quattro cifre, ad esempio2004%monthnum%: Mese dell'anno, p. es.05%day%: Giorno del mese, p. es.28%hour%: Ora del giorno, p. es15%minute%: Minuti, p. es.43%second%: Secondi, p. es.33%postname%: Una versione bonificata del titolo del post. In questo modo "Questo è un Bel Post!" diventa "questo-e-un-bel-post" nell'URI (vedi note in basso)%post_id%: L'ID numerico del post, p. es.423%category%: Una versione bonificata del nome della categoria. Le sottocategorie appaiono anch'esse annidate nell'URI.%author%: Una versione bonificata del nome dell'autore.
Attenzione ad usare solamente %postname%: Se usi il nome del post come unico elemento nei tuoi permalink, per creare una struttura del tipo mioblog.it/titolo-post, le regole di riscrittura potrebbero rendere impossibile l'accesso a documenti come i fogli di stile (che hanno un formato simile) o alla directory wp-admin. Per evitare malfunzionamenti è preferibile includere dati numerici (p. es. l'ID del post o la data) nel permalink.
In aggiunta, WordPress v1.2.x richiede l'uso di una struttura di date per far funzionare cose come il calendario. Di solito un buon punto di partenza è l'uso di:
/archives/%year%/%monthnum%/%day%/%postname%/
Note sull'uso di %category%: %category% non funziona correttamente con il mod_rewrite in versioni di Apache precedenti alla 2. Se stai usando Apache 1, non usare %category% nella tua struttura dei permalink.
Note sull'uso di %category% con categorie multiple per un post: Quando assegni categorie multiple ad un post, solo una può essere mostrata nel permalink e sarà la categoria con ID minore (vedi nella gestione delle categorie). Il post sarà comunque accessibile attraverso tutte le categorie.
Terminare correttamente i permalink: Poiché è importante garantire la tracciabilità dei singoli post tramite la tua struttura personalizzata, devi fare in modo che essa termini con %post_id% oppure con %postname%
Ad esempio:
/archives/%year%/%monthnum%/%day%/%postname%/
3. Modifica delle regole di riscrittura (.htaccess)
Questo passaggio non è obbligatorio se stai usando WordPress 1.5 dal momento che WordPress 1.5 crea e/o modifica il file .htaccess automaticamente.
Affinché funzioni la riscrittura degli indirizzi, il tuo server deve avere abilitato il modulo di Apache mod_rewrite. In aggiunta, devi creare un file .htaccess e posizionarlo nella stessa directory dove si trova il file principale index.php. Ad esempio: se il tuo blog WP si trova installato in dominio.it/WordPress/, devi mettere il file .htaccess in dominio.it/WordPress/.htaccess.
Allo stesso modo, se la tua installazione di WP si trova in una sottodirectory, ma i visitatori accedono al tuo sito dal dominio di primo livello (dominio.it/), devi mettere il file .htaccess in dominio.it/.htaccess.
Quando crei la struttura dei permalink, WordPress genera automaticamente le regole di riscrittura e non devi fare altro che copiarle e incollarle nel tuo file .htaccess.
Alcune precauzioni sulla creazione e la modifica del file .htaccess:
- Per creare il file
.htaccessdevi disporre di un accesso FTP - Per poter modificare il file
.htaccessdirettamente da WP come accade per i temi grafici ed altri file, devi prima usare il comandochmodsul file.htaccesse settarne i permessi a 666. Questa opzione però non è raccomandabile, dal momento che poi qualsiasi utente iscritto al tuo blog che ha la possibilità di modificare i temi grafici, avrà la possibilità di modificare anche il file.htaccess. Puoi cambiare i permessi a 660 per renderlo modificabile dal server, che comunque avrà la stessa limitazione. - Se lasci degli spazi vuoti alla fine del tuo file
.htaccess, potrebbe capitare che le pagine del tuo sito non siano più visualizzabili (sebbene esistano ancora insieme a tutti i dati). Se ciò accade, cancella il file.htaccesse crealo di nuovo. - Se il tuo file
.htaccesscontiene degli errori che causano l'irraggiungibilità del sito, devi cancellare via FTP l'.htaccessincriminato, dal momento che l'editor dei file di WP non sarà più accessibile. - Se hai la possibilità di creare e modificare il file
.htaccessdal pannello di controllo ? del tuo spazio web, nel caso di errori nel file, potresti essere in grado di modificare.htaccessanche nel caso il tuo sito web sia inaccessibile.
4. Usare i Permalink senza mod_rewrite
Per i permalink in generale, devi usare mod_rewrite, che però non è supportato dai server Windows. Se però inserisci il nome di un file all'inizio, WordPress tenterà di passare gli argomenti alla pagina e di aggirare la necessità del mod_rewrite.
Ad esempio:
/index.php/archives/%year%/%monthnum%/%day%/%postname%/
Se usi questa opzione, puoi ignorare tranquillamente la creazione del file .htaccess.
5. Creare collegamenti ai Permalink
Per creare un collegamento ad un permalink all'interno del tuo sito, ad esempio verso un altro post, devi fare riferimento alla directory principale del tuo sito con uno slash alla fine, p. es.:
/wordpress/archives/2005/10/01/specific-postname/
La struttura del link è basata sulla tua struttura dei tuoi permalink.
Per creare un collegamento ad un permalink esterno al tuo sito devi inserire il permalink completo di http://, p. es.:
http://www.sitoesterno.it/wordpress/archives/2005/10/01/specific-postname/
6. Risolvere problemi correlati ai Permalink
6.1 Problemi relativi alla creazione del file .htaccess
Se la tua installazione di WordPress non riesce a creare il file .htaccess o a modificare uno già esistente, ci possono essere molte ragioni. Esegui perciò i passi descritti uno alla volta, e passa a quello successivo solo se non riesci a risolvere il problema.
- Usa il comando
chmodsul file.htaccessper settarne i permessi a 666, anche se questo non è raccomandabile, dal momento che in questo modo qualsiasi utente registrato al tuo blog abilitato alla modifica dei temi grafici, potrà modificare anche il file.htaccess. - Il tuo fornitore di hosting potrebbe aver disabilitato la variabile
SERVER_SOFTWAREe questo potrebbe causare il fallimento della creazione del file.htaccessda parte di WP. Se sei sicuro che sul tuo server sia installato Apache, puoi costringere WP ad usare Apache modificando il filewp-includes/vars.php. Segui queste istruzioni per effettuare i cambiamenti:- Apri il file
wp-includes/vars.phpusando l'editor di file nel pannello di controllo di WordPress. Dopo aver fatto il login, clicca su "Gestisci", poi su "File" e scorri la pagina fino in basso. Digitawp-includes/vars.phpnella casella di testo che si trova sotto "Altri File". - Cerca la riga
- Apri il file
$is_apache = strstr($_SERVER['SERVER_SOFTWARE'],'Apache') ? 1 : 0;
// $is_apache = strstr($_SERVER['SERVER_SOFTWARE'],'Apache') ? 1 : 0
- Aggiungi una nuova riga sotto
// $is_apache = strstr($_SERVER['SERVER_SOFTWARE'],'Apache') ? 1 : 0;
$is_apache = 1;
6.2 Altri Problemi
Se il tuo file .htaccess viene generato correttamente, ma i Permalink non funzionano, probabilmente hai uno di questi problemi:
- Il tuo server potrebbe avere disabilitato la direttiva
AllowOverride. Se la direttivaAllowOverrideè settata aNonenel file di configurazione di Apache (httpd.conf), allora i file.htaccessvengono completamente ignorati. In questo caso, il server non permette la lettura dei file.htaccess. Quando questa direttiva è settata suAll, allora è possibile inserire delle direttive nel file.htaccess. Un esempio di direttivaAllowOverrideabilitata nel filehttpd.conf:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
Se non vuoi settare AllowOverride a All (come nell'esempio sopra), allora la tua AllowOverride deve contenere la direttiva FileInfo. Affiché i cambiamenti al file httpd.conf abbiano effetto, devi riavviare Apache.
Per ulteriori informazioni sulle overrides permesse consulta Apache Core Features.
6.3 Ulteriore Aiuto
Se tutti i passi sopraindicati non risolvono il problema, puoi consultare le seuenti risorse:
- Il Forum Italiano di WordPress
- La Documentazione ufficiale di WordPress (in inglese)
- I forum di supporto WordPress (in inglese)
Come ultima risorsa, segnala un eventuale bug nel Mosquito.