I permalink e le URL personalizzate di WordPress.

June 30th, 2008 § 18 commenti

Se utilizzate WordPress per pubblicare dei contenuti nel web potreste avere bisogno di impostare il pattern di generazione dei permalink.

Per fare questo tipo di operazione dovete utilizzare il pannello di gestione dei permalink che vi permette di personalizzare la struttura dell’URL attraverso la valorizzazione del campo Custom Structure.

All’interno di questo campo dovrete andare ad inserire un percorso come ad esempio:%category%/%postname%.html, che andrà a settare le URL dei post come: nome categoria + nome del post con estensione html. personalizzare i permalink
Di seguito vengono elencati i valori che si possono impostare:

  • %year%: l’anno del post a 4 cifre
  • %monthnum%: il mese del post a 2 cifre
  • %day%: il giorno del mese a 2 cifre
  • %hour%: l’ora del post a due cifre
  • %minute%: i minuti del post
  • %second%: i secondi del post
  • %postname%: una versione codificata del titolo del post
  • %post_id%: l’id numerico del post
  • %category%: una versione codificata del nome della categoria
  • %author%: una versione codificata del nome dell’autore.

Se ridenominate delle categorie o avere bisogno di un sistema avanzato e più flessibile di gestione delle URL, potete anche utilizzare questa comoda plugin AskApache RewriteRules Viewer per l’editing del file .htaccess direttamente dal pannello di configurazione di WordPress:

screenshop-editor-htaccess

Consigli ed esempi:

  1. Ricordatevi sempre che WordPress per il suo funzionamento utilizza index.php e per questo al momento dell’installazione ci sono settate delle regole di default che è preferibile non modificare:
  2. # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress.

  3. Se la l’home page della vostra piattaforma non è direttamente nella root directory, ma è nella directory blog:

  4. RewriteCond %{HTTP_HOST} ^miosito\.com
    RewriteRule ^(.*)$ http://www.miosito.com/$1 [R=301,L]

  5. Se volete eliminare i parametri dalle vostre URL:

  6. RewriteCond %{THE_REQUEST} ^GET\ /.*\;.*\ HTTP/
    RewriteCond %{QUERY_STRING} !^$
    RewriteRule .* http://www.askapache.com%{REQUEST_URI}? [R=301,L]

  7. Se avete ridenominato una categoria o un file e volete che gli utenti vengano rediretti verso URL conformi al nuovo naming:

  8. RewriteRule /blog/vecchia-categoria/(.+) http://www.miosito.com/nuova-categoria/ [R=301,L]

    RewriteRule /blog/vecchio-permalink$ http://www.miosito.com/nuovo-permalink/? [R=301,L]

  9. Se volete congiurare il rischio di qualche loop infiinto per qualche regola errata:

  10. RewriteCond %{REQUEST_URI} ^/(stats/|missing\.html|failed_auth\.html|error/).* [NC]
    RewriteRule .* - [L]
    RewriteCond %{ENV:REDIRECT_STATUS} 200
    RewriteRule .* - [L]

  11. Se volete redirigere le richieste al feed dal vostro blog al servizio di FeedBurner:

  12. RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(feed|wp-atom|wp-feed|wp-rss|wp-rdf|wp-commentsrss)(.+)\ HTTP/ [NC,OR]
    RewriteCond %{QUERY_STRING} ^feed [NC]
    RewriteCond %{HTTP_USER_AGENT} !^(FeedBurner|FeedValidator) [NC]
    RewriteRule .* http://feeds.askapache.com/apache/htaccess? [R=307,L]
    RewriteRule ^comments/?.*$ http://feeds.feedburner.com/apache/htaccess/comments [L,R=302]

Link utili:

Tagged ,

§ 18 Responses to I permalink e le URL personalizzate di WordPress."

  • [...] Permalink e URL personalizzate in WordPress; [...]

  • surfweb says:

    Buonasera.
    Sono arrivato sul tuo blog cercando su google una guida che mi permettesse di impostare l’etsensione .htm(html) nella pagine wordpress.
    Praticamente se metto l’estensione .htm dall’area amministrativa questa regola ha effetto solo sui post e non sulle pagine.
    Sapresti indicarmi come fare per ovviare a questo problema.
    Ti ringrazio anticipatamente.

  • Andrea Vit says:

    ciao Surfweb, ottima domanda.
    Hai ragione, in effetti le pagine non possono avere l’estensione html e non hanno una gestione integraa dei permalink.
    Ma non disperare, c’è questo link, che forse potrebbe darti una mano :-)
    http://wordpress.org/support/topic/167383
    Non l’ho ancora testato su versione aggiornata (qui fa riferimento a WP 2.5), ma credo che possa funzionare ugualmente…(magari tra qualche giorno ci faccio un paio di test :-) )

  • surfweb says:

    Ciao Andrea.
    Sei stato un fulmine a rispondermi. Non sai quanto ho cercato questa risposta e nessuna sapeva dirmi nulla a riguardo!!
    Ho provato proprio ora la soluzione da te proposta e funziona alla perfezione.
    Sul post di riferimento c’è scritto di aggiornare anche la struttura permalink nell’area amministrativa di wordpress altrimenti si rischia un errore 404. Io ho verificato e non succede nulla. Però non si sa mai!!
    Magari tu farai sicuramente altre prove e magari trovi anche una soluzione più elegante che modificare un file del core!!

    Intanto non posso fare altro che ringraziarti… mi hai fatto un bel regalo!! :D

    P.S: Ti inserisco subito nel mio lettore feedrss!! :D

  • Andrea Vit says:

    Addirittura…Esagerato!
    Queste domande, sono sempre un motivo per aggiornarsi ed imparare qualcosa di nuovo!
    Magari ci faccio un post, mettendo un po’ in ordine i passi da fare per raggiungere l’obiettivo.
    Buon wordpress allora!!!!

  • surfweb says:

    Non sono esagerato. Non tutti sono disposti ad aiutare e a rispondere come hai fatto tu.

    WordPress lo considero più che una piattaforma blog perchè lo ritengo degno per realizzare siti web anche piuttosto complessi. A differenza di joomla, drupal e tanti altri è molto più semplice da configurare, ottimizzare ed adeguare alle proprie esigenze.

  • Il Jester says:

    Ti ringrazio anche io per le soluzioni suggerite e mi accodo al giudizio di Surfweb relativamente a wordpress. Gestisco due siti: il blog su piattaforma wordpress e un sito su Joomla. Devo dire che WordPress da maggiori soddisfazioni.

  • Andrea Vit says:

    Ciao Jester,
    grazie per il commento.
    Beh io sono un fan di WordPress, sicuramente ha i suoi limiti, ma si possono fare tantissime cose davvero avanzate!

  • Il Jester says:

    Direi! Grazie a te! ;)

  • Alex says:

    Ciao Andrea, ho notato che da un po’ di versioni a sta parte di wordpress, se modifichi i permalink per farli finire ad esempio in .html (come fai tu in questo blog), toglie lo slash finale alla categoria… (come d’altronde succede al tuo blog)

    conosci per caso un rimedio affinchè non si verifichi questo?

  • Matteo says:

    Ciao Andrea,

    ho letto con molto interesse il tuo post, ma non sono ancora riuscito a capire una cosa.

    La struttura dei permalink attuale nel mio sito è:

    /%year%/%monthnum%/%day%/%postname%/

    e vorrei cambiarla in:

    /%category%/%postname%.html

    Mi sai dire cosa devo inserire nel file htaccess ?

    Mille grazie

  • carlo says:

    Ciao Andrea,
    ho usato i tuoi consigli sul permalink: mi sono stati utili e ti ringrazio x le valide “dritte”!
    Un saluto,
    Carlo

  • semileggi says:

    io non ci sto capendo niente, sono proprio impedito…Dove trovo AMMINISTRAZIONE->opzioni?

  • DarioDN says:

    una curiosità. cosa dovrei scrivere se volessi rimuovere o sostituire “author” nel permalink di wordpress…
    solitamente infatti quando si va sulla pagina dell’autore di un post il permalink è http://www.dominio…/author/nome-autore . ecco, se io volessi far apparire “autore” al posto di “author”?
    credo si possa agire tramite htaccess no?
    grazie

  • reav says:

    secondo voi queste cose possono influire sull’indicizzazione su google ?
    io ho provato di tutto ma proprio nn va
    [omissis]

  • Roberto says:

    Ho attivato il modrewrite credo nel modo corretto, ma purtroppo nelle pagine interne del mio blog il logo che ho messo al posto del title, nell’header, non viene visualizzato.
    Nella homepage, index.php, invece si, viene visualizzato normalmente.

    A che cosa potrebbe essere dovuto secondo voi?
    Vi ringrazio in anticipo.

  • luigi says:

    Salve io uso WP 3.0.1 ho un problema con i permalink se vado a settare con una Struttura personalizzata %category%/%postname% , non mi si visualizzano le pagine mi da un errore:

    Not Found
    The requested URL /storia was not found on this server.
    CWnet Server at http://www.#####.it Port 80

    volevo settare i permalink, perchè a me non piace vedere l’url con estensione ?page_id=N .
    Il problema e che con le alre possibilità quindi:
    Predefinito, Data e nome,Mese e nome e Numerico va tutto ok
    ma con una Struttura personalizzata no…..
    come posso fare?
    Grazie

  • Alberto says:

    Ciao Andrea, sono approdato al tuo blog ricercando struttura personalizzata /%postname% …
    il mio problema è il seguente:
    ho importato da remoto a locale il mio blog e fin qui tutto bene, funziona tutto tranne la struttura personalizzata /%postname% in locale, non vengono visualizzate le pagine dando un errore di tipo

    Oggetto non trovato!

    L’URL richiesto non esiste su questo server. Il link della pagina da cui sei arrivato potrebbe essere errato o non essere più valido. Per favore, informa dell’errore l’autore della pagina.
    Se pensi che questo sia un errore del server, per favore contatta il webmaster.
    Error 404

    ho provato anche a cambiare $this->page_structure = $this->root . ‘%pagename%.html’; ma niente da fare
    l’unico modo per visualizzare le pagine in locale è quello di settare i permalink in predefinito blog/?p=123

    la mia domanda è dove vengono scritte le pagine.html in wordpress?
    come posso fare per avere la stessa struttura di permalink sia in remoto che in locale?

    Grazie
    ciao

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Stai leggendo:

I permalink e le URL personalizzate di WordPress. su Andrea Vit.