WordPress mi sta dando una pagina 404 non trovata per tutte le pagine tranne la homepage


115

All'improvviso vado sul mio sito Web WordPress e tutte le pagine mi danno una pagina 404 pagina non trovata. Suppongo che il problema risieda nella struttura del permalink, che potrei giurare di non aver toccato. L'impostazione del permalink è su "mese e nome".

Ho ricercato casi simili di questo problema online e molto ha a che fare con il .htaccessfile? Ho provato a trovare, ma non ci riesco. Forse è stato cancellato in qualche modo? Dove dovrebbe essere posizionato.

Eventuali suggerimenti saranno utili

e ovviamente posso vedere i file nascosti.


Suggerisco di chiedere anche questo su wordpress.stackexchange.com .
James Wiseman

Risposte:


95

.htaccess è un file nascosto, quindi devi impostare tutti i file come visibili nel tuo ftp.

Ti suggerisco di riportare la struttura del permalink al valore predefinito (? P = ID) in modo da assicurarti che .htaccess sia il problema.

Dopodiché, potresti semplicemente impostare di nuovo la struttura "mese e nome" e vedere se funziona.

PS: hai aggiornato alla 3.1? Ho visto alcune persone con problemi di plug-in in questo caso.


1
si ho mostrato i file nascosti. Sono passato avanti e indietro da predefinito a perma e funziona in modo predefinito. Inoltre, wordpress si aggiorna o qualcosa del genere? Noto che quando eseguo l'accesso ho una nuova barra delle attività di amministrazione sul mio sito Web, che prima non avevo. Non so come sia arrivato lì.
Adam

qualcuno ha erroneamente aggiornato alla 3.1, quindi è in conflitto con un plug-in
Adam

1
Anche la mancanza .htaccesspotrebbe portare a questo problema, qualunque cosa tu corregga il permalink, quindi controlla prima quello, non nascosto o mancante
Osify

1
Accedi all'amministratore di WordPress e salva di nuovo i parmalink. Questo genererà un file .htaccess o aggiornerà quello esistente.
Keyur Patel

Ho provato a utilizzare admin e ad aggiornare manualmente il file .htaccess, ma il problema persiste. Disabilita anche il plugin ma non risolvi il problema del permalink.
Jaymin

56

Fondamentalmente il file .htaccess dovrebbe esistere e il file httpd.conf dovrebbe essere corretto.

Nel mio caso, ho modificato il file /etc/apache2/apache2.conf nella sezione:

<Directory "/var/www/html">

La riga modificata è:

AllowOverride None

per

AllowOverride All

E riavvia il server web con

systemctl restart apache2

1
grazie, che ha aiutato. Nel mio caso mancava l'impostazione AllowOverride.
straccio

1
Questo ha risolto anche me. Uso lo scotchbox vagabondo per quello che vale.
Matt Kaye

2
Questo è quasi sempre il problema. Dovrebbe essere la risposta migliore.
Noel Baron

Questo ha corretto il problema per me - Dovrebbe essere la risposta accettata
Charles

52

Fissaggio quel problema è molto semplice se si stesse usando permalink diversi da quello default, come Day and name, Month and name, Numeric, Post nameo Custom Structure, avete solo bisogno di

Accedi alla tua area di amministrazione: Settings > Permalinksche dovrebbe essere:http://yoursite.com/wp-admin/options-permalink.php

Scegli l' Defaultimpostazione permalink , quindi salva le modifiche

Quindi puoi restituirlo di nuovo all'altra scelta del permalink precedente o tenerlo defaultcome desideri

Tieni presente che questo problema può verificarsi quando sposti il ​​tuo sito da un dominio o da una posizione a un altro.


1
Questo in qualche modo mi ha aiutato, ho avuto alcuni errori di database e in seguito tutte le mie pagine erano 404. Il passaggio dell'opzione permalink a un'altra opzione (come normale) e poi di nuovo all'opzione predefinita ha risolto tutti i miei collegamenti!
PaulBGD

Sono contento di sentirlo :)
usama sulaiman

2
Risposta perfetta +100
handiansom

Come posso tornare all'impostazione predefinita del permalink anche mysite.com/wp-adminse non funziona?
J86

Risposta perfetta +10086
Aflext

29

Se il comportamento predefinito ( example.com/?p=42) funziona, dovresti:

  • Passa al tuo stile di permalink preferito: Admin: Settings > Permalinkse fai clic su Salva. A volte risolve il problema. In caso contrario:
  • Verificare che il file /path/to/wordpress/.htaccesssia stato modificato e che ora includa la riga RewriteEngine On. Se non include la riga, è un problema di autorizzazioni di Wordpress.
  • Verifica che il modulo "riscrivi" sia caricato: crea un file PHP con

    <?php
      phpinfo()
    ?>

    in esso, aprilo nel browser e cerca mod_rewrite. Dovrebbe essere nella sezione "Moduli caricati". Se non lo è, abilitalo - Guarda il tuo index.htmlfile predefinito di Apache per i dettagli - in Ubuntu, lo fai con l'helper a2enmod.

  • Verifica che il server Apache stia guardando il .htaccessfile. aperta httpd.conf- o è alternativa di Ubuntu, /etc/apache2/apache2.conf. In esso, dovresti avere qualcosa di simile

    <Directory /path/to/wordpress>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
  • Dopo aver apportato queste modifiche, non dimenticare di riavviare il tuo server Apache. sudo service apache2 restart


20

SE tutto questo non funziona, il tuo .htaccess è corretto e il trucco dei permalink non ha funzionato, potresti non aver abilitato il tuo mod rewite di apache2 .

Ho eseguito questo e il mio problema è stato risolto:

 sudo a2enmod rewrite 

Cerca mod_rewritenella phpinfo();pagina per verificare se hai abilitato. E 'in Loaded Modulessuapache2
vanduc1102

9

All'interno dell'interfaccia di amministrazione di WordPress, procedi come segue:

  1. Vai alle impostazioni dell'amministratore

  2. Fare clic su permalink e selezionare il nome del post nel pulsante di opzione.

  3. Scorri verso il basso e vedrai il .htaccesscodice qui come.

    <IfModule mod_rewrite.c>
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule> 
  4. Copia il codice e incolla il .htaccessfile.

1
Dove lo trovo? Non c'è niente di simile nei permalink.
Boris_yo

@Boris_yo Per quanto ne so, le regole verranno visualizzate solo se il tuo htaccessfile è notscrivibile .. se è wordpress lo scriverà semplicemente da solo ...
Obmerk Kronen

1
Questa risposta è fantastica! e non lo saprai mai a meno che non usi WP in Linux. Grazie mille
Mayeenul Islam

7

Questo errore è dovuto alla disabilitazione della mod di riscrittura nel documento httpd.conf di apache, basta decommentarlo e godersi i permalink seo friendly


4
  • Controlla che la directory su .htaccess sia quella corretta
  • Verifica che i campi "siteurl" e "home" siano corretti

1
Per me il problema era la casa. Lo aggiusto e tutto torna al lavoro. Obrithankyou José Carlos.
Tiago Gouvêa

4

Abbiamo avuto lo stesso problema e lo abbiamo risolto controllando il file error.log del nostro host virtuale. Abbiamo trovato il seguente messaggio:

AH00670: le opzioni FollowSymLinks e SymLinksIfOwnerMatch sono entrambe disattivate, quindi anche la direttiva RewriteRule è vietata a causa della sua capacità simile di aggirare le restrizioni di directory: / srv / www / htdocs / wp-intranet /

La soluzione era impostare Options Alle AllowOverride Allnel nostro host virtuale config.


3

Se hai accesso FTP al tuo account:

Per prima cosa, accedi al tuo wp-admin e vai su Impostazioni> Permalink

Dovresti vedere qualcosa in fondo che dice:

"Se il tuo file .htaccess fosse scrivibile, potremmo farlo automaticamente, ma non è così queste sono le regole mod_rewrite che dovresti avere nel tuo file .htaccess. Fai clic nel campo e premi CTRL + a per selezionare tutto."

Se questo è vero, procedi come segue:

  1. Vai nelle preferenze per il tuo client FTP e assicurati che i file nascosti siano visualizzati (varia a seconda del tuo client FTP) - Se non lo fai non sarai in grado di trovare il tuo file htaccess

  2. Vai alla cartella in cui si trovano le directory wp-admin, wp-content, wp-includes. Controlla il file .htaccess. Se esiste, vai al passaggio 4

  3. Se non esiste, crea un nuovo file vuoto nel tuo programma FTP chiamato .htaccess

  4. Cambia il CHMOD per il tuo file .htaccess in 666 (la tua preferenza su come vuoi farlo)

  5. Torna alla tua pagina Permalink e modifica la struttura dei link che desideri. Il problema dovrebbe essere risolto!

  6. Assicurati di cambiare il chmod del file htaccess a 644 dopo aver finito.

Ho appena avuto lo stesso problema e sembrava risolverlo all'istante! In bocca al lupo!


"mod_rewrite" questo era il problema, ho dimenticato di abilitarlo! Grazie :)
Chemaclass

3

La maggior parte delle volte questo problema viene risolto semplicemente visitando la pagina Impostazioni -> Permalink nell'amministratore di WordPress e facendo clic su Salva (come già sottolineato da molte altre risposte). Quando si accede a questa pagina, WordPress riscrive le direttive nel .htaccessfile che magicamente risolve il problema. Il problema si verifica spesso dopo aver spostato un sito (il sito si interrompe perché .htaccessviene lasciato indietro o le impostazioni devono essere aggiornate).

Se WordPress non dispone delle autorizzazioni appropriate per scrivere il .htaccessfile, verrà visualizzato un avviso nella parte superiore della pagina e ulteriori istruzioni in basso quando le impostazioni vengono salvate. In questo caso è necessario modificare il .htaccessfile da soli o, meglio, correggere i permessi su quel file. Il file si trova alla radice dell'installazione di WordPress. cdnella directory e sudo chmod 644 .htaccess. Potresti anche voler controllare se il file appartiene al gruppo giusto e la modifica necessaria con chown. Chiedi al tuo provider di hosting se non sai come farlo.

Se utilizzi un hosting condiviso, probabilmente è tutto ciò che puoi fare. Se il problema persiste, potresti parlare con il supporto del tuo provider di hosting. Altrimenti, assicurati che l'uso dei .htaccessfile sia abilitato sul server, come già suggerito da @georgeos. Nota che httpd.confnon viene sempre utilizzato ( Ubuntu indica che è deprecato ma la documentazione ufficiale di Apache dice ancora che è spesso il file di configurazione principale ). /etc/httpd/conf/httpd.confe /etc/apache2/apache2.confsembrano essere i posti più comuni per questo file. Trova il blocco per la cartella pubblica, di solito <Directory /var/www/>e assicurati che la AllowOverridedirettiva sia impostata su All. Se è impostato su None, il tuo .htaccessfile viene semplicemente ignorato dal server.



2

È possibile che .htaccess non sia consentito nelle impostazioni del webhost. L'impostazione dei permalink predefiniti funzionerebbe in questo caso.


1

Caso 1: - Pensiamo se migrare il sito da un hosting a un altro hosting se si verifica questo tipo di problema.

Soluzione: - Vai semplicemente al vecchio server, copia il codice del file .htaccess, quindi incollalo nel nuovo file .htaccess del server. 99% funzionerà.


0

Ho lo stesso problema e quindi rimuovo l'Apache e lo rifaccio e il problema è stato risolto.


0

Vai su Impostazioni-> Permalink nella tua dashboard e quindi sul pulsante Salva modifiche nell'ultimo. \



0

Ho appena cambiato il permalink in 'mese e giorno' di tutti i post passando all'impostazione> permalink.

Ora tutti i post sono aperti e funzionano bene.

Di nuovo, ho rinominato tutti i post con il suo permalink effettivo. Funziona di nuovo bene.

Questo metodo ha funzionato per me :-)


0

Per gli utenti di nginx

Usa quanto segue nel tuo file di configurazione per il tuo sito (di solito /etc/nginx/sites-available/example.com)

location / { try_files $uri $uri/ /index.php?q=$uri&$args; }

Questo trasferisce tutte le richieste di permalink a index.php con una stringa URI e gli argomenti forniti. Fai un systemctl reload nginxper vedere le modifiche e i tuoi link non home page dovrebbero caricarsi.


0

Prima di provare a modificare il permalink o la configurazione del server, controlla il tuo file .htaccess. Questo è principalmente un problema di file .htaccess danneggiato o vuoto. Ripristina il file htaccess sul valore predefinito

# 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

0

dopo 2 lunghi giorni, la soluzione era aggiungere options +FollowSymLinksall'inizio del mio .htaccessfile.


-1

Ho avuto questo problema non molto tempo fa. Avevo ripristinato il mio permalink al valore predefinito o l'ho appena salvato, temi / core aggiornati a (4.7.4) / plugins, disattivato tutti i plug-in, passato al tema predefinito, database ottimizzato, .htaccess è già predefinito, permessi dei file controllati, mod_rewrite è attivo .

Finora non funziona nulla, ciò che funziona sono i post, la nuova pagina, la pagina / contatti TRANNE le vecchie pagine.

Fondamentalmente, le pagine / URL che non funzionano sono:

/breeding
/training
/training/*
/breeding/*

Ultimate, ho trovato questi file nella cartella principale:

/breeding.php e /training.php

Ho rinominato entrambi i file e le pagine sopra hanno funzionato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.