Cum adaug prefixul /blog/ la structura permalink pentru articole de blog, pagini cu etichete etc.?

5 iun. 2011, 03:48:53
Vizualizări: 72.5K
Voturi: 25

Folosesc WordPress 3.1.3 ca CMS complet, instalat în directorul rădăcină al unui domeniu. L-am configurat folosind opțiunile integrate pentru a avea o pagină statică ca pagină principală și apoi blogul meu la http://www.example.com/blog.

Ceea ce doresc este ca articolele individuale de blog, paginile de categorii, paginile de arhivă, paginile cu etichete și orice alte pagini legate de blog să aibă prefixul /blog/ în structura lor de link. Astfel, URL-ul unui articol ar fi www.example.com/blog/titlu-articol


Momentan, doar paginile de categorii funcționează corect. Acest lucru a fost realizat prin adăugarea următoarei linii în fișierul meu .htaccess:

RewriteRule ^category/(.+)$ http://www.example.com/$1 [R=301,L]

Apoi, am setat Baza Categoriei la "blog" în pagina Setări Permalink din WordPress. Aceasta oferă paginilor de categorii URL-ul: www.example.com/blog/nume-categorie (fără a elimina prefixul categoriei în .htaccess, acestea aveau URL-ul category/blog/nume-categorie).


În încercarea de a face acest lucru să funcționeze pentru celelalte elemente dorite, am setat Baza Etichetelor la "blog." De asemenea, am făcut Structura Permalink Personalizată: /blog/%postname% (așa cum a fost sugerat de câteva discuții găsite pe Google).

Aceste setări oferă URL-urilor pentru articolele individuale de blog, paginile de etichete și paginile de arhivă structura URL pe care o caut. Cu toate acestea, toate duc la erori 404.

Am șters fișierul meu .htaccess pentru a mă asigura că WordPress scrie în el, și o face. Dacă elimin /blog/ din structura permalink, totul funcționează corect, dar nu mai am structura URL pe care o doresc.

Nu mai știu ce să fac. Continui să citesc discuții și ghiduri care spun că este la fel de simplu ca adăugarea /blog/ la structura permalink, dar până acum nu a fost nici pe departe atât de simplu.

Conținutul .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>
1
Comentarii

Ca o observație suplimentară, permalink-ul afișat în timpul editării unui articol este "greșit". Nu va afișa legătura finală.

Alexis Wilke Alexis Wilke
30 oct. 2017 00:09:33
Toate răspunsurile la întrebare 2
5
33

Primești erori 404 când adaugi /blog/ la structura personalizată a permalink-urilor și apoi adaugi și /blog/ la baza categoriilor. Ar trebui să fie adăugat doar într-un singur loc, în structura personalizată a permalink-urilor.

Dacă lași baza categoriilor și baza etichetelor goale și doar adaugi /blog/ în fața structurii personalizate a permalink-urilor, astfel încât să arate așa /blog/%postname% - vei obține rezultatul dorit.

Paginile tale vor arăta astfel: domeniu.exemplu/numelepagini/ URL-ul postării va arăta astfel: domeniu.exemplu/blog/numelepostului URL-ul categoriei va arăta astfel: domeniu.exemplu/blog/categorie/numelepostului

27 iun. 2011 19:26:59
Comentarii

Bună observație cu adăugarea doar într-o singură secțiune. Această soluție va adăuga și /blog/ la paginile de categorii și arhivă, ceea ce este bine. Aceasta ar trebui să fie răspunsul acceptat.

Ian Ian
6 iun. 2014 23:44:35

Mă bucur că această metodă se aplică și la URL-ul paginii de categorii.

Edwin Yip Edwin Yip
4 nov. 2014 07:11:06

Acesta ar trebui să fie răspunsul acceptat la această întrebare.

AndyWarren AndyWarren
17 oct. 2017 16:17:52

va atașa prefixul la TOATE tipurile tale de postări personalizate

nodws nodws
4 mai 2018 00:22:17

O întrebare obișnuită aici ar fi probabil: Cum gestionați acest lucru doar pentru tipurile de postări "post" și cum traduceți /blog de exemplu pentru diferite limbi? :)

trainoasis trainoasis
23 iul. 2018 15:05:27
21

Accesați Setări>Legături permanente și adăugați-l la structurile de legături permanente

5 iun. 2011 07:35:48
Comentarii

Asta a fost unul dintre primele lucruri pe care le-am încercat și rezulta în erori 404. Așa că l-am dezactivat pentru câteva ore și am decis să încerc din nou după ce am citit răspunsul tău. Acum funcționează pentru paginile mele de articole individuale. Am reușit să fac să funcționeze din nou și paginile de categorii. Rămân doar paginile de etichete și paginile de arhivă care au nevoie de /blog/ în ele.

Preston Preston
5 iun. 2011 07:54:18

Dacă te uiți pe pagină, există un loc și pentru etichete. În ceea ce privește paginile de arhivă, te referi la pagina care afișează lista de articole, etichete, categorii etc. sau la postările arhivate?

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 07:57:45

Pentru etichete, dacă adaug blog în zona Tag Base, îmi dă structura corectă a URL-ului "mydomain.com/blog/nume-eticheta" dar acea pagină îmi dă apoi o eroare 404. Referitor la arhive, mă refer la pagina care afișează postările arhivate pentru o anumită lună. Aș dori ca URL-ul să fie mydomain.com/blog/2011/05. Această structură de URL apare când dau click pe o legătură de arhivă, dar dă și ea o eroare 404. Și acum primesc din nou erori 404 pentru postările individuale de pe blog. Ar putea fi un plugin care cauzează probleme?

Preston Preston
5 iun. 2011 07:58:52

Configurarea ta .htaccess este corectă?

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 08:00:20

Cred că da, WordPress adaugă regulile de rescriere ori de câte ori le modific. Ar trebui să existe ceva anume acolo pentru ceva de genul acesta?

Preston Preston
5 iun. 2011 08:01:31

mai întâi verifică dacă fișierul tău .htaccess există, dacă nu, trebuie să obții conținutul acestuia și să-l creezi tu.

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 08:04:28

Există, și am eliminat celelalte lucruri pe care le-am adăugat, așa că tot ce rămâne este ceea ce este mai jos (cu liniile de cod corecte), și tot primesc erori 404 pentru toate paginile în afară de cele de 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>

Apreciez că îmi acorzi timpul să mă ajuți.

Preston Preston
5 iun. 2011 08:08:34

Data viitoare postează codul direct în întrebarea ta, folosind tag-uri de cod. O să editez eu postul tău cu el, dar nu va fi vizibil până când un moderator nu îl verifică. Încearcă să elimini linia RewriteBase /, uneori serverul nu are nevoie de ea sau poate genera o eroare.

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 08:14:40

Sigur, îmi cer scuze pentru asta.

Am eliminat linia, dar tot primesc erori 404 ca înainte.

Preston Preston
5 iun. 2011 08:20:15

ai un link pe care îl pot încerca? dacă nu, e în regulă. Vreau doar să văd dacă afectează doar pe tine sau pe toată lumea. De asemenea, ai citit pagina codex despre asta http://codex.wordpress.org/Using_Permalinks în special spre final.

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 08:24:23

Sigur, am lucrat la secțiunea de blog aici link. Apoi un articol aici link. O să mai arunc o privire la pagina despre permalink-uri.

Preston Preston
5 iun. 2011 08:32:00

asta este ceva ce am primit de la un coleg membru @toscho, a spus să încerc să adaug această linie ^blog/category/(.+)$ în loc de cea anterioară

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 08:36:11

ignoră ultimul comentariu. Doar dacă funcționează mai bine pentru tine. Din păcate, sunt puțin blocat la acest subiect. Ai verificat dacă serverul tău funcționează cu asta?

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 08:40:30

Cred că am reușit să rezolv majoritatea problemelor. Am eliminat "blog" din Baza de Categorii și, din nu știu ce motiv, totul funcționează acum cu excepția paginilor de categorii. Acum am această linie în fișierul meu .htaccess RewriteRule ^blog/category/(.+)$ http://www.dvorakdesigns.com/$1 [R=301,L], dar paginile de categorii apar ca dvorakdesigns.com/category/numele-categoriei. A fost asta implementarea corectă conform indicatiilor pe care ți le-a dat toscho?

Preston Preston
5 iun. 2011 08:46:45

Și tu vrei /blog/category/numele-categoriei sau /blog/numele-categoriei

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 08:51:39

Dacă blog/categorie/nume-categorie este posibil, asta ar fi ideal. Altfel, blog/nume-categorie este în regulă.

Preston Preston
5 iun. 2011 08:54:34

Trebuie să mă gândesc la asta. Între timp, încearcă să cauți pe Google despre acest subiect.

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 09:04:05

Cred că am rezolvat. A fost la fel de simplu ca adăugarea blog/categorie ca Bază pentru Categorii, și apoi blog/etichetă ca Bază pentru Etichete. Cu aceasta în fișierul .htaccess: RewriteRule ^category/(.+)$ http://www.dvorakdesigns.com/$1 [R=301,L] (acest lucru previne ca URL-ul să fie categoria/blog/categorie). Să sperăm că totul va rămâne funcțional! Mulțumesc foarte mult pentru toată ajutorul.

Preston Preston
5 iun. 2011 09:30:16

Sună bine. Nicio problemă

xLRDxREVENGEx xLRDxREVENGEx
5 iun. 2011 19:11:47

Această soluție nu funcționează pentru mine. Am o taxonomie care se mută de la /mytaxonomy la /blog/mytaxonomy când fac asta, ceea ce nu vreau. Am nevoie de /blog pentru articole și /mytaxonomy pentru elementele de taxonomie.

Pieter Pieter
28 apr. 2013 14:26:47

Aceasta este FALS, va atașa prefixul la TOATE tipurile tale de postări personalizate

nodws nodws
4 mai 2018 00:21:19
Arată celelalte 16 comentarii