SOLVIUM

Allgemein

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.

GD Star Rating
loading...

Ähnliche Beiträge

, , | Kommentar schreiben | Trackback einrichten

7 Reaktionen zu “HTTP/1.1 301 Moved Permanently”

» Einen Kommentar schreiben

  1. Willi

    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!

  2. Redirect

    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

  3. Oktoberfest Info

    Vielen Dank… erspart einem viel Arbeit!
    So muss man nicht die komplette htaccess händisch anlegen…

  4. Peter Pröschel

    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

  5. Jan

    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?!

  6. ZeroCool

    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:

    
    <?php
    $domain = explode('.',$_SERVER['SERVER_NAME']);
    if($domain['0'] != 'www')
    {
    $location = 'http://www.'.$domain['0'].'.'.$domain['1'].$_SERVER['REQUEST_URI'];
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: ".$location);
    }
    ?>
    
    
    

    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.

  7. Whoopster

    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

Einen Kommentar schreiben

Blog Blogs Code DJK Dyckburg Einkaufen EM 2008 Essen Film Firefox Fotos Fussball Games Geburtstag Gewinnspiel Google Gutenachtgeschichten Handy ich Katzen Kreta Lebensweisheiten Musik Münster Münster Poker Politik Programmierung real Rechner Schokolade SEO Shop Studium The Killers Trash TV Twitter unblogbar Uni Video Web Weihnachten Werbung Wirtschaft Wordpress

© 2006-2012 Solvium.de - von und mit Jan Papenbrock - Impressum - Kontakt aufnehmen

» Blog powered by Wordpress. Silk icons von FamFamFam.