Dopo la migrazione del server funziona solo la homepage

13 apr 2011, 21:32:58
Visualizzazioni: 122K
Voti: 42

Ho recentemente cambiato l'hosting del mio sito WordPress su VPS.net. Ho spostato tutti i miei file e importato il database. Tutto sembrava funzionare correttamente finché non ho cliccato su un link e ho notato che tutte le mie pagine restituiscono un errore 404 eccetto la homepage.

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

2
Commenti

Ho avuto lo stesso problema e poi è stato risolto modificando il file .htaccess secondo i valori predefiniti da qui https://wordpress.org/support/article/htaccess/

Muzaffar Mahmood Muzaffar Mahmood
23 giu 2020 11:38:52
Tutte le risposte alla domanda 6
8
54

Prova a rigenerare le regole di mod_rewrite:

Pannello di controllo -> Impostazioni -> Permalink

Salva le impostazioni (non è necessario apportare modifiche)

13 apr 2011 21:36:23
Commenti

In realtà non c'è nemmeno bisogno di salvare. Le regole vengono aggiornate semplicemente visitando quella pagina, e parte dell'aggiornamento delle regole implica la scrittura su .htaccess.

John P Bloch John P Bloch
13 apr 2011 21:49:19

Imparo qualcosa di nuovo ogni giorno... :)

Chip Bennett Chip Bennett
13 apr 2011 21:51:20

@john sei sicuro che il semplice caricamento della pagina scriva su .htaccess se necessario? Avevo l'impressione che solo le rewrite_rules nel database venissero aggiornate.

Ashfame Ashfame
13 apr 2011 22:00:08

wp-admin/options-permalinks.php chiama flush_rewrite_rules(), un wrapper per WP_Rewrite::flush_rules(), che, se $hard è true (come avviene quando viene chiamato in quella pagina) e la funzione save_mod_rewrite_rules esiste (definita in wp-admin/includes/misc.php, inclusa in tutte le pagine di amministrazione), chiama save_mod_rewrite_rules(). Vedi la definizione di questa funzione qui: http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/misc.php#L114

John P Bloch John P Bloch
13 apr 2011 23:32:09

La funzione che effettivamente scrive le regole di riscrittura in .htaccess si chiama insert_with_markers (utilizzata in save_mod_rewrite_rules() sopra), definita qui: http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/misc.php#L53

John P Bloch John P Bloch
13 apr 2011 23:33:42

Questo ha risolto il problema per me.

Ed DeGagne Ed DeGagne
17 apr 2017 04:11:13

Non c'è bisogno di aprire il cPanel. Stavo provando prima la risposta accettata e il mio è un hosting condiviso quindi non riuscivo a trovare httpd.conf e la chat live sta ancora caricando. Poi ho trovato questa risposta che è la soluzione più semplice da usare. :D

TheOnlyAnil TheOnlyAnil
4 ago 2017 11:24:23

questo ha risolto il mio problema (lo stesso dell'op)

arvic.rivera arvic.rivera
6 dic 2018 22:12:27
Mostra i restanti 3 commenti
6
54

Immagino che tu ottenga http://tuosito ma non http://tuosito/qualsiasicosa

Ho avuto un problema simile e ha funzionato quando ho cambiato

il httpd.conf da

AllowOverride None

a

AllowOverride All

Questo fa sì che il file .htaccess abbia effetto.

18 apr 2012 18:20:28
Commenti

Questo ha funzionato per me. La maggior parte delle persone si dimentica di questo.

qasimzee qasimzee
10 dic 2014 20:20:47

Anche per me ha funzionato, ho solo dovuto modificarlo nella sezione di apache2.conf per la posizione dei miei file del server, nel mio caso /var/www

sponrad sponrad
17 nov 2015 08:04:10

Questo è stato parte della soluzione per me. Ho aggiunto AllowOverride All alla configurazione del sito, ma ho anche aggiunto Options FollowSymLinks. Così ho potuto usare permalink personalizzati, che hanno anche creato un appropriato file .htaccess nella root. Dopo di che tutto ha funzionato.

boot13 boot13
13 set 2016 02:46:46

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

gradosevic gradosevic
11 gen 2017 09:51:03

Ha funzionato. Assicurati di modificare l'opzione AllowOverride nelle posizioni nel file conf.

Najeeb Najeeb
19 dic 2017 15:54:06

abilitando in httpd.conf LoadModule rewrite_module libexec/apache2/mod_rewrite.so ha funzionato su mac. rimuovi il # per abilitarlo

stefanosn stefanosn
6 lug 2019 18:54:01
Mostra i restanti 1 commenti
5
31

Ho affrontato lo stesso problema.

Ho eseguito i seguenti passaggi per risolverlo su un server Ubuntu:

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

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

sudo a2enmod rewrite

  1. Riavviare il server apache:

sudo service apache2 restart

Problema risolto!!!

22 nov 2015 04:40:28
Commenti

Grazie, non ero riuscito a risolvere con nessun altro suggerimento, ma a2enmod rewrite ha funzionato.

Martin McCallion Martin McCallion
23 giu 2017 21:17:06

+1 Per aver menzionato il modulo rewrite. Non sapevo che non fosse abilitato di default.

Native Coder Native Coder
13 dic 2017 05:35:47

Sicuramente serviva quel sudo a2enmod rewrite per farlo funzionare, grazie!

Huskie69 Huskie69
5 ott 2018 12:31:02

Grazie! Il comando a2enmod rewrite ha funzionato per me.

Lucas Basquerotto Lucas Basquerotto
17 ott 2018 18:46:45

Grazie Avinash! Anche per me, come Lucas, il comando a2enmod rewrite ha funzionato

Jero Dungog Jero Dungog
25 nov 2019 23:52:17
0

In Ubuntu 14.04 - il file 000-default.conf si trova in questa posizione /etc/apache2/sites-available

Oppure, se gestisci più installazioni WordPress, le impostazioni del virtual host saranno nel tuo file di configurazione. es. dominio.conf

Devi sostituire AllowOverride None con AllowOverride All

Spero che funzioni.

9 nov 2015 17:51:54
0

Il motivo è molto probabilmente che il file .htaccess non è stato copiato. Su Mac OS X e in alcune applicazioni FTP, questo file viene considerato "nascosto" perché inizia con un .. Se vai nella sezione Impostazioni -> Permalink nella tua area di amministrazione, puoi rigenerare questo file, ma probabilmente è meglio trovare la versione che avevi precedentemente e utilizzare quella di nuovo (specialmente se usi un plugin di caching).

13 apr 2011 21:46:27
2

Ricevi un errore 404 del server web o un errore 404 di WordPress? Se è un errore 404 del server web, molto probabilmente non hai copiato il file htaccess radice dalla vecchia installazione, oppure non ha i permessi corretti per essere eseguito.

Il mio primo elemento di risoluzione dei problemi sarebbe controllare se esiste un file htaccess nella directory radice e, in caso affermativo, vedere cosa contiene.

13 apr 2011 21:36:15
Commenti

Ho controllato il file .htaccess. Contiene lo stesso codice che appariva nella sezione permalink del pannello di amministrazione di WordPress. Ho modificato i permessi in scrivibile ma non vedo apparenti cambiamenti.

mikeyrocks mikeyrocks
13 apr 2011 22:17:22

@mikeyrocks Mmm... un'altra possibilità è che il tuo nuovo server non abbia il mod_rewrite attivato. Importante: stai ricevendo un 404 del server (pagina bianca semplice che dice "not found"), o un 404 di WordPress (stilizzato come il resto del tuo sito)?

MathSmath MathSmath
13 apr 2011 23:11:24