Linkuri de categorii afișează eroare 404 - Soluții WordPress

23 dec. 2010, 21:53:13
Vizualizări: 15.5K
Voturi: 3

Blogul meu WordPress a început brusc să afișeze erori 404 când accesez paginile de categorii. De exemplu, http://blog.rtwilson.com/category/tok-related/. Interesant, acest lucru nu se întâmplă pentru subcategorii (cum ar fi GIS și Remote Sensing, afișate în bara laterală pe linkul de mai sus) dar se întâmplă pentru categoriile părinte (de ex. Academic) și categoriile fără copii (cum ar fi TOK-related).

Are cineva idei de ce s-ar putea întâmpla asta? Recent am schimbat structura de permalinkuri pentru articolele blogului, dar nu și pentru categorii. Trebuie să reconstruiesc cumva lista de categorii? Dacă da, cum?

Actualizare Conținut fișier .htaccess:

# ÎNCEPUT WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# SFÂRȘIT WordPress
2
Comentarii

Nu primesc nicio eroare 404 pe http://blog.rtwilson.com/category/tok-related/

hakre hakre
24 dec. 2010 04:36:56

Acestea sunt permalinkuri normale, iar categoriile tale par să funcționeze acum.

markratledge markratledge
24 dec. 2010 05:07:54
Toate răspunsurile la întrebare 6
6

Primul lucru de încercat este să resalvezi structura de legături permanente din administrarea WordPress.

Și asigură-te că modificările tale sunt salvate în .htaccess. Dacă WordPress te avertizează că .htaccess nu poate fi scris, folosește manual FTP pentru a schimba permisiunile fișierului .htaccess la 644 și încearcă din nou.

Punctul "." din fața numelui fișierului înseamnă că este un fișier normal invizibil, așa că verifică clientul tău FTP pentru a te asigura că va afișa fișierele invizibile dacă nu vezi un fișier .htaccess în directorul tău web. Fișierul .htaccess va fi la același nivel de director ca fișierul tău index.php indicat de setarea Adresă site (URL) din pagina de Opțiuni Generale.

Acesta este un bloc standard de rescriere WordPress:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Dacă primești o eroare de server 500, asta înseamnă că codarea caracterelor fișierului este greșită și s-ar fi putut schimba atunci când ai editat fișierul .htaccess. Poți încerca să redenumești fișierul .htaccess curent și să folosești clientul FTP pentru a crea un fișier nou numit .htaccess.

Dacă încă primești erori 404 sau comportament ciudat după salvarea legăturilor permanente și verificarea că fișierul .htaccess are blocul de rescriere de mai sus, încearcă să adaugi

global $wp_rewrite; $wp_rewrite->flush_rules();

în fișierul functions.php al temei tale, revino și reîmprospătează pagina de start, apoi elimină codul. Asta va goli regulile de rescriere din cache și din transient.

Există mai multe sfaturi și exemple de depanare la Folosirea Legăturilor Permanente « WordPress Codex

23 dec. 2010 22:04:33
Comentarii

WP nu m-a avertizat despre nimic. Legăturile permanente pentru articolele de blog funcționează bine, problema este doar la paginile de categorii și nu am schimbat structura legăturilor permanente pentru acele pagini!

robintw robintw
23 dec. 2010 22:07:32

Am citit asta; dar primul pas este oricum să resalvezi legăturile permanente.

markratledge markratledge
23 dec. 2010 22:10:34

Mulțumesc. Am resalvat preferințele pentru legăturile permanente și am verificat fișierul .htaccess. Fișierul .htaccess are data de modificare corespunzătoare momentului în care am resalvat preferințele pentru legături permanente. Am inclus conținutul fișierului .htaccess la sfârșitul întrebării.

robintw robintw
23 dec. 2010 22:38:57

Încearcă să adaugi global $wp_rewrite; $wp_rewrite->flush_rules(); în fișierul functions.php al temei tale, întoarce-te și reîmprospătează pagina principală, apoi elimină codul.

onetrickpony onetrickpony
24 dec. 2010 04:14:29

@songdogtech Răspuns doar cu link. Poate actualizezi acesta deoarece atrage cititori?

kaiser kaiser
15 mar. 2015 14:42:15

@kaiser, Mulțumesc, idee bună. L-am actualizat pe al meu; și am observat că linkul din răspunsul acceptat nu mai funcționează.

markratledge markratledge
15 mar. 2015 18:33:38
Arată celelalte 1 comentarii
0

Cineva are idei de ce s-ar fi putut întâmpla asta?

Nu primesc o eroare 404 pe acea pagină, dar pentru a răspunde la întrebare: nu am nicio idee de ce se întâmplă asta sau de ce nu se întâmplă.

Am schimbat recent structura permalinkurilor pentru articolele de pe blog, dar nu și pentru categorii. Trebuie să reconstruiesc cumva lista de categorii?

De fiecare dată când schimbi structura permalinkurilor din panoul de administrare, permalinkurile sunt reconstruite automat, deci nu trebuie să te îngrijorezi în privința asta. Și nu există un lucru precum reconstruirea listei de categorii, așa că nu trebuie să te întrebi despre asta.

24 dec. 2010 04:39:30
0

Am avut aceeași problemă - am instalat plugin-ul 'advanced permalinks', și are o eroare... se pare că comentând această linie

$this->add_filter ('category_rewrite_rules');

în plugin. Răspunsul original nu este al meu (deși a funcționat pentru mine) dar era de aici

3 feb. 2014 00:55:30
0

Am instalat plugin-ul "Advance Permalink" de John Godley pe 31 martie 2015 pentru a redirecționa structura anterioară a permalink-urilor de pe http://punch2crunch.com

După 36 de ore, toate categoriile mele au început să genereze automat erori 404, iar o singură categorie funcționa dar era blocată pe un singur articol. Dacă vi se întâmplă același lucru, atunci trebuie doar să adăugați un singur lucru.

Urmați pașii:

  1. Din panoul de administrare, mergeți la Plugins, alegeți Editor.
  2. Selectați "Advance-permalink/Advance-permalink.php"
  3. Derulați în jos până găsiți următorul cod:

    $this->add_filter ('post_rewrite_rules');
    $this->add_filter ('author_rewrite_rules');
    $this->add_filter ('category_rewrite_rules');
    $this->add_filter ('rewrite_rules_array');
    
  4. Pur și simplu adăugați două bare oblice // înainte de $this->add_filter ('category_rewrite_rules'); astfel:

    $this->add_filter ('post_rewrite_rules');
    $this->add_filter ('author_rewrite_rules');
    //$this->add_filter ('category_rewrite_rules');
    $this->add_filter ('rewrite_rules_array');
    

Reîmprospătați site-ul și totul va începe să funcționeze perfect din nou. Dacă nu, atunci va trebui să căutați soluția în altă parte.

2 apr. 2015 11:33:25
0

Am avut aceeași problemă.

  • Asigură-te că modulul Apache rewrite este activat și că ai un fișier .htaccess corespunzător
  • Dacă pasul de mai sus nu funcționează, mergi la setările permalinkurilor și introdu baza categoriei ca "category"
  • Unele pluginuri SEO cu propriile reguli de rescriere pot cauza probleme
  • Dacă ai vreun plugin de cache, șterge cache-ul.
12 nov. 2015 20:30:24
0

Aceasta mi s-a întâmplat după ce gazda mea a migrat pe un server diferit. Soluția pentru mine, așa cum a menționat markratledge mai sus, a fost să "resalvez permalink-urile din administrarea WordPress".

Pentru a detalia acest proces:

  1. Autentifică-te în site-ul tău WordPress.

  2. Accesează Panou de control->Setări->Permalinkuri

  3. Presupunând că setarea ta este pe "Nume articol", selectează "Numerice" apoi butonul "Salvează".

  4. Acum dă click din nou pe butonul radio "Nume articol" și selectează "Salvează".

Această acțiune ar trebui să resalveze setările tale, iar etichetele și categoriile să funcționeze corect.

28 sept. 2023 22:54:27