SEOs online




9. Mai 2009

SEO-friendly Webkatalog mit htaccess und PHP

Roman @ 22:55  >>  Kategorie: php & coding — Tags: , , ,

Da ich heute gerade meine Website Link-Verzeichnis durchgearbeitet habe, möchte ich hier eine Kurzanleitung für seofriendly URLs mit htaccess und PHP verfassen, damit Ihr auch etwas davon habt… Grundsätzliches: ich gehe davon aus, dass Du ein wenig PHP-Erfahrung hast, und dass Du einen Webkatalog (PHP, SQL) hast, in dem die Rubriken-URLs z.B. “category.php?id=52354″ heissen und die Linkdetailseiten irgendwie “details.php?linkid=245245″. Wenn das auf Dich zutrifft, dann bist Du hier am richtigen Ort :o)

Zuerst müssen wir Bedingungen erfüllen: wir müssen auf dem Webserver die Erlaubnis haben, eine .htaccess-Datei im Root-Verzeichnis speichern zu dürfen. Wenn Du noch keine hast, erstellst Du mit einem Texteditor eine neue Datei und speicherst diese als “.htaccess” ab; also eine “namenlose” Datei mit der Dateiendung “htaccess”. Damit das Ganze funktioniert muss auf Deinem Serverplatz das Apache Modul für URL-Rewriting vorhanden sein.

In der Datenbank, dort wo der Eintrag zum Linkeintrag des Webkatalogs ist, brauchen wir ein neues Tabellenfeld für jeden Datensatz, welches Du z.B. “permalink” benennst undvom Datentyp her z.B. ein VARCHAR mit 255 Zeichenlänge. Hier herein schreiben wir die seofriendly URL; z.B. bei der Linkanmeldung, wenn ein neuer DB-Eintrag gemacht wird, müssen wir das einbauen. Erweitere also den DB-Eintrag Deiner Linkanmeldung, indem Du beim “INSERT INTO mein_linkverzeichnis” das Feld “permalink” hinzufügst. Vorher muss natürlich noch die seofriendly-URL bestimmt werden; hier gibt es verschiedene Überlegungen.

Nehmen wir an, Du möchtest für eine Detailseite eines Linkeintrags den Linktitel als seofriendly-Url eintragen, so kannst Du z.B. folgende Funktion in Deine “functions.php” einbauen:

Download Code 1 (txt): seo-friendly-url-dateiname1

Vielleicht wunderst Du Dich, wieso ich im Code einige Zeilen wiederhole, das ganze hat sich in der Praxis bewährt, da in Linktitel allerlei Zeichen vorkommen können… Jedenfalls kannst Du nun überall diese Funktion z.B. wie folgt aufrufen:

$saubere_URL = seofriendlyDateiname($eintrag[titel]);

Soweit begriffen? Wir tragen also für jeden Linkeintrag in Deiner DB in das neue DB-Feld “permalink” eine seofriendly-URL ein. Wenn Du nun bereits 100 Links in Deinem Verzeichnis eingetragen hast, magst Du natürlich nicht jeden Link von Hand in die DB schreiben; dazu kannst Du z.B. einmalig auf Deinem Server eine PHP-Datei mit einer hübschen Schleife aufrufen, die alle Linkeinträge durchloopt, z.B. folgend:

Download Code 2 (txt): seo-friendly-url-loop1

Sogar eine Schleife ohne geschweifte Klammern ;o) …
Selbstverständlich musst Du jeweils auch die Variablen gegen Übeltäters Injections absichern, ein schlichtes addslashes() reicht da nicht…
Also, obigen Code einmal ausführen und alle Linkeinträge in der DB haben einen “Permalink”!
Aus einem Linktitel wie z.B. “Immobilien & Wohnungen in Zürich” wird dann mit obiger Funktion zu “immobilien-wohnungen-in-z%FCrich”.

Nun schreibst Du in Deine .htaccess-Datei z.B. folgenden Code:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ([a-zA-Z0-9äöü%-]*).htm$ /links.php [L]
</IfModule>

Lade diese Datei in das oberste Verzeichnis Deines Webservers.
Obiger Code bedeutet, dass ALLE URLs, die “.htm” enthalten, intern auf unsere (noch zu erstellende) “links.php” geleitet werden, in der Adresszeile des Browsers aber www.meinedomain.ch/immobilien-wohnungen-in-z%FCrich.htm angezeigt wird!

Nun erstellst Du eben eine neue Datei, welche die neue Detailseite wird.
Benenne diese “links.php”.
In dieser kannst Du nun die URL z.B. folgend abfangen und weiterbearbeiten:

Download Code 3 (txt): linksphp2

Die URL für die Detailansicht eines Linkeintrags ist nun in $link[permalink] enthalten und muss als href=”" angegeben werden.

Mit den Rubriken verhält es sich gleich, bloss würde ich da eine andere Funktion für seo-frieendly einsetzen:

Download Code 4 (txt): seo-friendly-url-verzeichnisname1

In diesem Falle würden wir die “.htaccess” folgend codieren:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ([a-zA-Z0-9äöü%-]*).html$ /rubriken.php [L]
RewriteRule ([a-zA-Z0-9äöü%-]*).htm$ /links.php [L]
</IfModule>

Nun haben wir ein Ergebnis, wie Du es z.b. in meinem Webkatalog www.link-verzeichnis.ch findest!
Und ja, ich weiss, es gibt da noch viele Hürden, doch das Wichtigste weisst Du nun, und ein wenig Eigeninitiative ist immer gut ;o)

Update (14. Mai 2009):

Um von der alten Linkdetail-Seite bzw. Rubrik-Seite gebührend Abschied zu nehmen, kannst Du in die ersten Zeilen der alten PHP-Seite eine saubere 301-Weiterleitung machen; ist IMHO besser, als einfach die alte, überflüssige Seite zu löschen, denk nur z.B. an die Suchmaschinen-Indexes… vielleicht wird ja auch allenfalls vorhandener alter Saft vererbt :o) Ich habe da mal eine 301 Weiterleitung nach URL-Rewriting mit Beispielcode (inkl. DB), wie das aussehen könnte…

Thats it! Good luck!




Beitrag bei SEOigg hinzufügen  







4 Kommentare »

  1. [...] einer SEO-Kur à la mod_rewrite unterzogen. Ich berichtete in dem Blogeintrag, wie ein Web-Katalog seo-friendly URLs erhalten kann. Nun sind im Google Index bereits 1850 Seiten, wobei dabei knapp über 820 Rubriken [...]

    Pingback by Linkverzeichnis Blog » seo-friendly URLs — 26. Mai 2009 @ 13:23

  2. Eine simple Anleitung um das www vor der Domain entweder zu entfernen oder zu erzwingen gibt es hier: http://popthis.de/2010/03/www-entfernen-hinzufuegen-per-htaccess/

    Comment by Paula — 23. März 2010 @ 09:25

  3. Einwandfrei, vielen Dank für deinen Beitrag! Hat mir weitergeholfen…

    Comment by Andi — 30. Oktober 2010 @ 17:50

  4. … das beste was ich je gelesen habe – und funktioniert!!

    DANKE

    Comment by uwe — 15. März 2011 @ 00:17

RSS-Feed für Kommentare zu diesem Artikel. TrackBack URL

Hinterlasse einen Kommentar

CommentLuv



Geladen in 0,619 Sekunden, 72 Datenbankabfragen. - Webdesign by EASEN Computing