Nach der Servermigration funktioniert nur die Homepage

32

Ich habe kürzlich das Hosting meiner WordPress-Site auf VPS.net geändert . Ich habe alle meine Dateien verschoben und die Datenbank importiert. Alles schien in Ordnung zu sein, bis ich auf einen Link klickte und bemerkte, dass alle meine Seiten außer der Homepage einen 404 zurückbringen.

Die URL der Website lautet http://inksquared.com

Mikeyrocks
quelle

Antworten:

42

Ich vermute, Sie erhalten http: // yoursite aber http: // yoursite / irgendetwas

Ich hatte ein ähnliches Problem und es wurde behoben, als ich mich änderte

die httpd.confvon

AllowOverride None

zu

AllowOverride All

Nach meinem Verständnis wird es die .htaccessWirkung machen.

San
quelle
6
Dieser hat für mich gearbeitet. Die meisten Leute vergessen das.
Qasimzee
1
Dies funktionierte auch für mich, musste nur im Abschnitt apache2.conffür den Speicherort meiner Serverdateien /var/www
geändert
1
Dies war ein Teil der Antwort für mich. Ich AllowOverride Allhabe der Site-Konfiguration hinzugefügt, aber ich habe auch hinzugefügt Options FollowSymLinks. Ich konnte dann benutzerdefinierte Permalinks verwenden, die auch eine entsprechende Root-.htaccess-Datei erstellten. Danach hat alles geklappt.
boot13
1
Und vergessen Sie nicht, Apache neu zu starten! "sudo service apache2
restart
1
Es funktionierte. Stellen Sie sicher, dass Sie die AllowOverride-Option an den Positionen in der conf-Datei ändern.
Najeeb
43

Versuchen Sie, Ihre mod_rewrite-Regeln zu leeren:

Dashboard -> Einstellungen -> Permalinks

Einstellungen speichern (keine Änderungen erforderlich)

Chip Bennett
quelle
7
Eigentlich müssen Sie nicht einmal sparen. Die Regeln werden nur durch Aufrufen dieser Seite gelöscht. Zum Löschen der Regeln gehört auch das Schreiben an .htaccess.
John P Bloch
Ich lerne jeden Tag etwas Neues ... :)
Chip Bennett
@ John sind Sie sicher, dass nur Seitenladevorgänge auf .htaccess schreiben, wenn es sein muss? Ich hatte den Eindruck, dass nur rewrite_rules in der Datenbank gelöscht werden.
Ashfame
wp-admin / options-permalinks.php ruft flush_rewrite_rules()einen Wrapper auf WP_Rewrite::flush_rules(), für den, wenn $hardes true(was es ist, wenn es auf dieser Seite aufgerufen wird) und die Funktion save_mod_rewrite_rulesexistiert (definiert in wp-admin/includes/misc.php, eingeschlossen in allen Admin-Seiten), es aufruft save_mod_rewrite_rules(). Die Definition dieser Funktion finden Sie hier: core.trac.wordpress.org/browser/trunk/wp-admin/includes/…
John P Bloch
Die Funktion , die tatsächlich die Rewrite - Regeln zu .htaccess schreibt heißt insert_with_markers(in verwendet save_mod_rewrite_rules()oben), definiert sich hier: core.trac.wordpress.org/browser/trunk/wp-admin/includes/...
John P Bloch
27

Ich hatte das gleiche Problem gehabt.

Ich habe Folgendes getan, um es auf einem Ubuntu-Server zu beheben:

  1. Bearbeiten Sie in /etc/apache2/apache2.conf AllowOverride None für / var / www /, um AllowOverride All zuzulassen

  2. Geben Sie den folgenden Befehl ein, um mod_rewrite für .htaccess zu aktivieren

sudo a2enmod umschreiben

  1. Starten Sie Ihren Apache-Server neu:

sudo service apache2 neu starten

Das Problem ist gelöst !!!

Avinash
quelle
Danke, ich konnte das mit keinem der anderen Vorschläge beheben, habe aber a2enmod rewriteden Trick getan.
Martin McCallion
+1 Um den Rewrite Mod zu erwähnen. Wusste nicht, dass dies nicht standardmäßig aktiviert war.
Native Coder
Ich brauchte das definitiv, sudo a2enmod rewriteum diesen Wokring zu bekommen, danke!
Huskie69
1
Vielen Dank! Der Befehl a2enmod rewritehat den Trick für mich getan.
Lucas Basquerotto
Vielen Dank, Avinash! Genau wie bei Lucas hat das Umschreiben von a2enmod den Trick für mich getan
Jero Dungog vor
1

Der Grund ist höchstwahrscheinlich, dass die .htaccessDatei nicht kopiert wurde. Unter Mac OS X und in einigen FTP-Programmen wird diese Datei als "versteckt" betrachtet, da sie mit einem beginnt .. Wenn Sie in Ihrem Admin-Bereich zum Abschnitt Einstellungen -> Permalinks gehen, können Sie diese Datei neu generieren. Es ist jedoch wahrscheinlich am besten, die zuvor verwendete Version zu finden und diese erneut zu verwenden (insbesondere, wenn Sie ein Caching-Plugin verwenden).

Gavin Anderegg
quelle
1

In Ubuntu 14.04 finden Sie hier die Datei 000-default.conf/etc/apache2/sites-available

Oder wenn Sie mehrere wp ausführen, ist die Einstellung für den virtuellen Host der Name Ihrer Konfigurationsdatei. zB domain.conf

Sie müssen ersetzen AllowOverride NonezuAllowOverride All

Hoffe das wird funktionieren.

Sam
quelle
0

Besitzen Sie einen Webserver 404 oder ein WordPress 404? Wenn es sich um einen Webserver 404 handelt, haben Sie die Root-HTAccess-Datei höchstwahrscheinlich nicht von der alten Installation kopiert, oder sie verfügt nicht über die richtigen Ausführungsberechtigungen.

Meine erste Problembehandlung wäre zu überprüfen, ob eine HTAccess-Datei im Stammverzeichnis vorhanden ist. Und wenn ja, was es enthält.

MathSmath
quelle
Überprüfte die .htaccess-Datei. Es enthält denselben Code, der im Permalink-Bereich des WordPress-Admin-Panels angezeigt wurde. Ich habe die Berechtigungen in beschreibbar geändert und sehe keine offensichtlichen Änderungen.
Mikeyrocks
3
@mikeyrocks Hmm ... eine andere Möglichkeit ist, dass auf Ihrem neuen Server mod_rewrite nicht aktiviert ist. Wichtig: Besitzen Sie einen Server 404 (einfache weiße Seite mit der Aufschrift "not found") oder ein WordPress 404 (wie der Rest Ihrer Website gestaltet)?
MathSmath