Come aggiungere il prefisso /blog/ alla struttura dei permalink per post del blog, pagine dei tag, ecc.?
Sto usando WordPress 3.1.3 come CMS completo, installato nella directory root di un dominio. L'ho configurato utilizzando le opzioni integrate per avere una pagina statica come homepage e il mio blog all'indirizzo http://www.example.com/blog
.
Vorrei che i miei singoli post del blog, le pagine delle categorie, le pagine di archivio, le pagine dei tag e qualsiasi altra pagina relativa al blog abbiano il "prefisso" /blog/
nella loro struttura dei link. Quindi l'URL di un post sarebbe www.example.com/blog/titolo-post
Al momento, solo le pagine delle categorie funzionano correttamente. Questo è stato ottenuto aggiungendo la seguente riga al file .htaccess
:
RewriteRule ^category/(.+)$ http://www.example.com/$1 [R=301,L]
Poi, ho impostato il Base Categoria su "blog" nella pagina Impostazioni Permalink di WordPress. Questo dà alle pagine delle categorie l'URL: www.example.com/blog/nome-categoria
(senza rimuovere il prefisso categoria in .htaccess
, avevano l'URL category/blog/nome-categoria
).
Nel tentativo di far funzionare questo anche per gli altri elementi, ho impostato il mio Base Tag su "blog". Ho anche impostato la mia Struttura Permalink Personalizzata: /blog/%postname%
(come suggerito da alcuni thread che ho trovato cercando su Google).
Queste impostazioni danno agli URL dei singoli post del blog, delle pagine dei tag e delle pagine di archivio la struttura URL che sto cercando. Tuttavia, questo fa sì che portino tutti a errori 404.
Ho eliminato il mio file .htaccess
per assicurarmi che WordPress ci scrivesse, e lo fa. Se rimuovo /blog/
dalla struttura dei permalink, tutto funziona correttamente, ma non ho più la struttura URL che sto cercando.
Non so più cosa fare. Continuo a leggere thread e guide che dicono che è semplice come aggiungere /blog/
alla struttura dei permalink, ma finora non è stato affatto così semplice.
Contenuto di .htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Ricevi errori 404 quando aggiungi /blog/
alla struttura dei permalink personalizzati e poi aggiungi anche /blog/
alla base delle categorie. Dovrebbe essere aggiunto solo a uno, la struttura dei permalink personalizzati.
Se lasci vuota la base delle categorie e dei tag e aggiungi semplicemente /blog/
all'inizio della struttura dei permalink personalizzati per ottenere questo formato /blog/%postname%
- otterrai il risultato desiderato.
Le tue pagine avranno questo formato: dominio.esempio/nomepagina/
L'URL dei post avrà questo formato: dominio.esempio/blog/nomepost
L'URL delle categorie avrà questo formato: dominio.esempio/blog/categoria/nomepost

Ottimo lavoro per averlo aggiunto solo a una sezione. Questa soluzione aggiungerà anche /blog/ alle pagine di categoria e archivio, il che è positivo. Dovrebbe davvero essere la risposta accettata.

Sono contento che questo metodo si applichi anche agli URL per la pagina delle categorie.

Questa è stata una delle prime cose che ho provato, e risultava in errori 404. Quindi l'avevo disabilitata per qualche ora, e ho deciso di riprovarla dopo aver letto la tua risposta. Ora funziona per le pagine dei singoli post. Ho anche fatto funzionare di nuovo le pagine delle categorie. Restano solo le pagine dei tag e quelle di archivio che necessitano del /blog/ nell'URL.

Se guardi la pagina c'è anche uno spazio per i tag. Per quanto riguarda le pagine di archivio, ti riferisci alla pagina che mostra l'elenco degli articoli, tag, categorie, ecc. o ai post archiviati?

Per i tag, se aggiungo blog nel campo Tag Base ottengo la struttura dell'URL corretta "miodominio.com/blog/nome-tag" ma poi quella pagina mi dà un errore 404. Per gli archivi, intendo la pagina che mostra i post archiviati per un determinato mese. Vorrei che l'URL fosse miodominio.com/blog/2011/05. Questa struttura dell'URL appare quando clicco su un link di archivio, ma dà anche un errore 404. E ora sto ricevendo di nuovo errori 404 per i singoli post del blog. Potrebbe essere un plugin a causare questi problemi?

Credo di sì, Wordpress aggiunge le regole di riscrittura ogni volta che le modifico. Dovrebbe esserci qualcosa di specifico per un caso come questo?

Per prima cosa verifica che il tuo file .htaccess esista, altrimenti dovrai prendere il suo contenuto e crearlo manualmente.

Esiste, e ho rimosso le altre cose che avevo aggiunto in modo che ci sia solo quanto segue (con gli a capo corretti), e continuo a ricevere errori 404 su tutto tranne che sulle pagine delle categorie.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Apprezzo anche che tu ti stia prendendo del tempo per aiutarmi.

La prossima volta pubblica semplicemente il codice nella tua domanda sopra, con i tag del codice. Modificherò il tuo post inserendolo, ma non sarà visibile finché un moderatore non lo avrà rivisto. Prova a rimuovere la riga RewriteBase / a volte il server non ne ha bisogno o restituirà un errore.

Certo, scusate.
Ho rimosso la riga, ma continuo a ricevere errori 404 come prima.

hai un link che posso provare? se non ce l'hai va bene lo stesso. Voglio solo vedere se riguarda solo il tuo o se colpisce tutti. Inoltre, hai letto la pagina del codex su questo http://codex.wordpress.org/Using_Permalinks soprattutto verso la fine.

questo è qualcosa che ho ricevuto da un altro membro @toscho, ha detto di provare ad aggiungere questa riga ^blog/category/(.+)$ invece della precedente

ignora l'ultimo commento. A meno che non funzioni meglio per te. Purtroppo sono un po' bloccato su questo. Hai verificato che il tuo server funzioni con questo.

Penso di aver risolto quasi tutto. Ho rimosso "blog" dalla Base delle Categorie, e per qualche motivo ora tutto funziona tranne le pagine delle categorie. Ora ho questa riga nel mio .htaccess RewriteRule ^blog/category/(.+)$ http://www.dvorakdesigns.com/$1 [R=301,L]
ma le pagine delle categorie vengono visualizzate come dvorakdesigns.com/category/nome-categoria. Era questa l'implementazione corretta di ciò che toscho ti ha dato?

Se blog/categoria/nome-categoria è possibile, sarebbe l'ideale. Altrimenti, blog/nome-categoria va bene.

Dovrò pensarci su. Nel frattempo prova a cercare su Google riguardo questo argomento

Penso di aver risolto. Era semplice quanto aggiungere blog/category come Base delle Categorie, e poi blog/tag come Base dei Tag. Con questo nel file .htaccess: RewriteRule ^category/(.+)$ http://www.dvorakdesigns.com/$1 [R=301,L]
(questo evita che l'URL diventi category/blog/category). Speriamo che tutto continui a funzionare! Grazie mille per tutto l'aiuto.

Questa soluzione non funziona per me. Ho una tassonomia che si sposta da /mytaxonomy
a /blog/mytaxonomy
quando faccio questo, il che non è quello che voglio. Ho bisogno di /blog
per gli articoli e /mytaxonomy
per gli elementi della tassonomia.
