Dopo la migrazione del server funziona solo la homepage


33

Di recente ho cambiato l'hosting del mio sito WordPress in VPS.net . Ho spostato tutti i miei file e importato il database. Tutto sembrava andare bene finché non ho fatto clic su un collegamento e ho notato che tutte le mie pagine stanno riportando un 404 tranne la homepage.

L'URL del sito è http://inksquared.com


Risposte:


42

Immagino che tu abbia http: // tuoite ma http: // tuo / qualunque cosa

Ho avuto un problema simile e si è risolto quando ho cambiato

il httpd.confda

AllowOverride None

a

AllowOverride All

Secondo la mia comprensione, avrà l' .htaccesseffetto.


6
Questo ha funzionato per me. La maggior parte delle persone se ne dimentica.
Qasimzee,

1
Questo ha funzionato anche per me, ho dovuto solo cambiarlo nella sezione di apache2.confper la posizione dei file del mio server, /var/wwwnel mio caso
sponrad

1
Questa era parte della risposta per me. Ho aggiunto AllowOverride Allalla configurazione del sito, ma ho anche aggiunto Options FollowSymLinks. Sono stato quindi in grado di utilizzare permalink personalizzati, che hanno anche creato un file .htaccess root appropriato. Dopo che tutto ha funzionato.
boot13,

1
E non dimenticare di riavviare apache! "sudo service apache2 restart"
gradosevic

1
Ha funzionato. Assicurarsi di modificare l'opzione AllowOverride nelle posizioni nel file conf.
Najeeb,

44

Prova a scaricare le tue regole mod_rewrite:

Dashboard -> Impostazioni -> Permalink

Salva impostazioni (non è necessario apportare modifiche)


7
Non c'è nemmeno bisogno di salvare, in realtà. Le regole vengono scaricate semplicemente visitando quella pagina e parte della cancellazione delle regole implica la scrittura su .htaccess.
John P Bloch,

Ogni giorno imparo qualcosa di nuovo ... :)
Chip Bennett,

@john sei sicuro che solo i caricamenti di pagina scrivano a .htaccess se necessario? Avevo l'impressione che solo i rewrite_rules nel database fossero scaricati.
Ashfame,

wp-admin / options-permalinks.php chiama flush_rewrite_rules(), un wrapper per WP_Rewrite::flush_rules(), che, se $hardè true(che è (quando viene chiamato su quella pagina) ed save_mod_rewrite_rulesesiste la funzione (definita in wp-admin/includes/misc.php, inclusa in tutte le pagine dell'amministratore), chiama save_mod_rewrite_rules(). Vedi la definizione di quella funzione qui: core.trac.wordpress.org/browser/trunk/wp-admin/includes/…
John P Bloch

La funzione che scrive effettivamente le regole di riscrittura in .htaccess è chiamata insert_with_markers(usata in save_mod_rewrite_rules()precedenza), definita qui: core.trac.wordpress.org/browser/trunk/wp-admin/includes/…
John P Bloch

27

Avevo affrontato lo stesso problema.

Ho fatto quanto segue per risolverlo su un server Ubuntu:

  1. In /etc/apache2/apache2.conf , modifica AllowOverride None per / var / www / in AllowOverride All

  2. Digitare il comando seguente per abilitare mod_rewrite per .htaccess

sudo a2enmod rewrite

  1. Riavvia il tuo server Apache:

sudo service apache2 restart

Il problema è stato risolto !!!


Grazie, non sono riuscito a risolvere questo problema con nessuno degli altri suggerimenti, ma a2enmod rewriteho fatto il trucco.
Martin McCallion,

+1 Per citare il mod di riscrittura. Non ho capito che questo non era abilitato per impostazione predefinita.
Native Coder,

Sicuramente necessario sudo a2enmod rewriteper ottenere questo wokring, grazie!
Huskie69,

1
Grazie! Il comando ha a2enmod rewritefatto il trucco per me.
Lucas Basquerotto,

Grazie Avinash! Lo stesso con Lucas, la riscrittura di a2enmod ha fatto il trucco per me
Jero Dungog,

1

È molto probabile che il .htaccessfile non sia stato copiato. Su Mac OS X e in alcune applicazioni FTP, questo file è considerato "nascosto" perché inizia con a .. Se vai alla sezione Impostazioni -> Permalink nella sezione di amministrazione, puoi rigenerare questo file, ma probabilmente è meglio trovare la versione che avevi in ​​precedenza e usarla di nuovo (specialmente se usi un plug-in di cache).


1

In Ubuntu 14.04 - il file 000-default.conf può essere trovato qui/etc/apache2/sites-available

Oppure, se esegui più wp, l'impostazione dell'host virtuale sarà il nome del tuo file di configurazione. ad esempio domain.conf

Devi sostituire AllowOverride NoneaAllowOverride All

Spero che questo funzioni.


0

Hai un web server 404 o un WordPress 404? Se si tratta di un server Web 404, molto probabilmente non hai copiato il file htaccess di root dalla vecchia installazione o non ha le autorizzazioni corrette per l'esecuzione.

Il mio primo elemento di risoluzione dei problemi sarebbe quello di verificare e vedere se esiste un file htaccess nella radice. E se è così, cosa contiene.


Controllato il file .htaccess. Contiene lo stesso codice che è apparso nella sezione permalink del pannello di amministrazione di wordpress. Ho cambiato le autorizzazioni in scrivibile e non vedo cambiamenti apparenti.
mikeyrocks,

3
@mikeyrocks Hmm ... un'altra possibilità è che il tuo nuovo server non abbia mod_rewrite attivato. Importante: stai ricevendo un server 404 (semplice pagina bianca che dice "non trovato") o un WordPress 404 (in stile come il resto del tuo sito)?
MathSmath,
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.