2010-03-02 5 views
28

Ich konnte keine direkte Antwort auf meine Frage finden und muss es von den echten Experten wissen.Umleiten von 404 Fehler mit. Htaccess über 301 für SEO usw.

Ich hatte eine Website, die URLs von Joomla generiert wurden. Ich glaube, dass Tonnen von URLs in den Suchmaschinen herumliegen und ich wirklich nicht weiß, welche von allen. Eine 302-Weiterleitung wäre eine Option, aber ich kann nicht sagen, welche URLs umgeleitet werden müssen.

Das einzige, was ich weiß, dass alle URLs von einem sef404-Skript generiert wurden, ist es ein SEO-Skript für Joomla.

Meine Frage, wie kann ich sicherstellen, dass alle verwaisten URLs bei Google und anderen Suchmaschinen korrekt mit einer .htaccess-Datei geliefert werden?

Wie kann ich 301-Weiterleitung alle 404 Seiten auf der Homepage (Root-Dokument)

Im Moment habe ich eine benutzerdefinierte 404.html Fehlerdatei verwenden, aber es gibt zu viele Dateien und wird eine Achterbahnfahrt der geben benutzerdefinierte 404 Fehlerseiten

Antwort

35

Sie müssen etwas über die URLs wissen, wie haben sie ein bestimmtes Verzeichnis oder ein Abfragezeichenfolgeelement, weil Sie für etwas zusammenpassen müssen. Andernfalls werden Sie auf dem 404. umleiten, wenn das ist, was erforderlich ist, dann etwas tun, wie dies in der .htaccess:

ErrorDocument 404 /index.php 

eine Fehlerseite Umleitung muss root relativ sein, so dass Sie nicht www.mydomain verwenden können. com.

Wenn Sie auch ein Muster haben, verwenden Sie 301 statt 302, da 301 permanent und 302 temporär ist. A 301 wird die alten URLs von den Suchmaschinen entfernen und die 302 nicht.

Mod Rewrite Referenz: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

+5

Minus als dies ist keine Umleitung – TheBlackBenzKid

38

ich mit der Lösung kam und veröffentlicht es auf meinem Blog

http://web.archive.org/web/2013031/http://onlinemarketingexperts.com.au/2013/01/how-to-permanently-redirect-301-all-404-missing-pages-in-htaccess/

hier ist der .htaccess-Code auch

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ./[L,R=301] 

aber ich gepostet andere Lösungen auf meinem Blog auch, es kommt darauf an, was Sie wirklich brauchen

+1

Dies wird 301 umleiten 404 Seiten wo immer Sie möchten, in der vorherigen Lösung ist es eine 302 – andrew

+2

Dies sollte die Antwort sein, wie die andere Antwort ist nur ein Neuschreiben und nicht umleiten +1 – TheBlackBenzKid

+1

Für alle, die wissen wollen, warum das so funktioniert (https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html): In der ersten Zeile wird RewriteEngine aktiviert, in der zweiten Zeile wird eine Bedingung für die dritte Zeile festgelegt. Stellen Sie sicher, dass es sich um eine nicht existierende Datei handelt und übergeben Sie den angeforderten Dateinamen (mit einer Servervariablen (% {})), die dritte Zeile entspricht allem, ersetzt sie durch den Stammordner und setzt zwei Flags, das erste (L), um jedes zu stoppen Weitere Regeln werden neu angewendet, und die zweite (R = 301) erzwingt eine externe Umleitung unter Verwendung des Fehlercodes 301. – Andrew