HTTP/1.1 301 Moved Permanently
Samstag, 1. September 2007 - 23:31 Uhr
Aus aktuellem Anlass gibt’s jetzt einen kleinen Ausflug in die Technik-Ecke… Folgendes ist passiert: Ich habe über WordPress die Links zu den Beiträgen angepasst (die sehen jetzt “hübsch” aus, hoffentlich hübsch genug auch für Max
) – man nennt das auch die Permalink-Struktur ändern oder die URL benutzer- und suchmaschinenfreundlich gestalten.
Kleines Problem dabei: die Beiträge waren weiterhin über /blog/?p={Beitragsnummer} erreichbar.
“Ja und?” – Google hat was gegen doppelten Inhalt (sog. duplicate content, gerne und fälschlicherweise auch mal dublicate content geschrieben), das heißt gegen gleiche Texte. Und damit die hier nicht auftauchen, muss ich also die “alten” Seiten auf die neuen umleiten.
Technik-Gebrabbel starts here...
Zuerst gab’s ein bisschen Hickhack in der .htaccess mit Redirect 301 /alt.html http://www.meinedomain.de/neu.html, was aufgrund eines anscheinend nicht installierten mod_alias-Moduls hier scheitert (aber eigentlich eine feine Möglichkeit wäre).
Im Anschluss versuchte ich dann diverse RewriteRules und RewriteConditions, sah auch ganz gut aus, leider wurde dann des ?p=x immer an die neue URL mit angehängt… auch nicht so hübsch.
Schließlich blieb ich dann wieder bei einer Weiterleitung über mittels der PHP-Funktion header() hängen. Die ist jetzt auch im Einsatz und tut’s wunderbar. Eingebaut ist das in der header.php des Themes, ganz oben (noch vor dem <!DOCTYPE…), schließlich darf vor dem Aufruf noch keine Ausgabe erfolgt sein.
Der eingefügte Codeschnipsel sieht so aus:
<?php
if (preg_match("#/blog/\?p=(.+)#i", $_SERVER['REQUEST_URI'])) {
header ("HTTP/1.1 301 Moved Permanently");
header ("Location: ".get_permalink());
exit;
}
?><!DOCTYPE ...
Vielleicht hilft es ja irgendwann mal irgendjemandem.
loading...
Ähnliche Beiträge
- Revival! 20. Juni 2007
- Tabellenlayout gefällig? 1. April 2008
- Da hab ich’s wohl versaut… 6. Januar 2007
- Partnerprogramm-Links verstecken 13. September 2008
- 2 Jahre Solvium.de 20. August 2008

Hey, hier bloggt Jan Papenbrock. Er studiert Wirtschaftsinformatik an der Uni Münster. Nebenbei erstellt er Webseiten und interessiert sich für SEO.
Ja, z.B. mir! Ich hab erst gestern danach gesucht und bin dann ebenfalls an der mod_rewrite Methode hängen geblieben. Allerdings ist das nicht auf allen meinen Webspaces verfügbar. Da kommt die PHP Methode gerade recht. THX, ich nehme das mal mit auf meinen Weg ins WWW. Bis bald!
Hallo!
Es wäre nett wenn mir jemand das nochmal genau erklären würde. Ich könnte auch die Lösung in der .htacces gebrauchen und natürlich mit Permalinks.
Vielen Dank im Voraus
Vielen Dank… erspart einem viel Arbeit!
So muss man nicht die komplette htaccess händisch anlegen…
Hallo – ich verstehe von dem was Sie da Schreiben nur immer Bahnhof! Können Sie das nicht etwas einfacher Erklären, z.B. Schritt 1,
dann 2 und wo und was muß ich reinschreiben um endlich einmal dieses “301 moved” loszuwerden was mich ständig nervt. Übrigen es ist von Google schon eine ziemliche Unverschämtheit, die könnten sich wirklich darum selbst kümmern um dies abzustelle. Besten Dank Peter Pröschel
Um ehrlich zu sein, verstehe ich die Frage nicht ganz – ’301 moved loswerden’?
Der HTTP-Status 301 steht für eine dauerhafte Weiterleitung einer alten URL auf eine neue URL. Der 301 ist also hauptsächlich dafür da, dass beim Umzug von Seiten nicht plötzlich alle Besucher, die von Suchmaschinen kommen, nicht mehr auf der gewünschten Seite landen. Nach außen hin sollte aber davon nichts sichtbar sein, außer eben die Änderung der URL.
Was genau Google daran ändern soll, versteh ich auch nicht?!
Für den Fall, dass noch jemand wissen möchte wie man z.B.: festlegt ob domain.tld oder http://www.domain.tld verwendet werden soll gibts folgenden code:
sobald die am weitesten links stehende subdomain nicht ‘www’ ist, wird auf http://www.domain.tld/verzeichnis/datei weitergeleitet.
Für die andere Richtung (also von http://www.domain.tld auf domain.tld) einfach nur oben anstatt !=, == schreiben und bei der location var das www entfernen.
Danke für die ausführliche Erklärung. War heute in einem 301-Delirium und wußte gar nicht mehr weiter….
@Peter Pröschel
“Übrigen es ist von Google schon eine ziemliche Unverschämtheit, die könnten sich wirklich darum selbst kümmern um dies abzustelle.”
Google ist es ziemlich egal welchen Statuscode Ihr Webserver zurückliefert. Die ziehen je nach Statuscode Ihre Konsequenzen, das ist alles.
Da sind sie als Webseitenbetreiber schon selbst in der Pflicht die Vorgaben zu regeln.
Das wäre ja wie wenn ich im Dunkeln mit schwarzen Klamotten über die Straße laufe und am Ende behaupte “das ist eine Unverschämtheit dass mich das Auto nicht gesehen hat”
Schöne Grüße,
Sascha