SEO URLs mit PHP und .htaccess

Sogenannte „SEO friendly URLs“, also für die Suchmaschinen optimierte URLs, werden gerne und häufig genutzt. Gerade Einsteiger  oder Hobby-Entwickler schrecken jedoch häufig vor der Nutzung solcher URLs zurück, da sich viele Mythen rund um das Thema SEO-friendly URLs ranken.

Ich möchte hier eine sehr simple und einfache Art der Umsetzung von suchmaschinenfreundlichen URLs zeigen. Dies geschieht mit Hilfe von PHP und .htaccess.

SEO-friendly URLs

Wer über SEO-URLs, also suchmaschinen-optimierte URLs spricht, meint damit auch zugleich sogenannte „sprechende URLs„. Diese URLs kann auch der Besucher lesen und erkennt sofort, wo er sich befindet bzw. wohin er gehen würde, falls er auf diesen Link klickt.

In der Suchmaschinenoptimierung sind sprechende URLs im Moment ein sehr wichtiges Kriterium – Branchen-Insider sprechen aber schon davon, dass die SEO-friendly URLs bald der Vergangenheit angehören werden. Warum sind suchmaschonenoptimierte URLs eigentlich so wichtig?

Ich persönlich glaube das nicht, und somit nutze ich diese immer noch.

Ein einfacher Weg zu sprechenden URLs

In diesem Beitrag zeige ich Euch, wie Ihr ganz einfach mit Hilfe von PHP und der .htaccess-Datei schöne, sprechen URLs/ SEO-URLs erstellen und nutzen könnte.

Diese Methode ist sehr, sehr basic – ich werde in absehbarer Zeit eine etwas schönere, zeitgemäßere Variante zur Erstellung und Nutzung von suchmaschinenfreundlichen URLs posten.  Abonniere doch einfach mein Blog, dann erhältst Du automatisch eine E-Mail, sobald ein neuer Beitrag online geht.

Jetzt geht’s aber los: Wir beginnen damit, die SEO-friendly URLs zu erstellen.

mod_rewrite aktivieren

Bevor wir loslegen, müssen wir auf unserem Apache-Server das Softwaremodul „mod_rewrite“ aktivieren. Bei vielen Hostern ist dies bereits aktiviert. Falls Du einen Root- oder vServer nutzt, musst du dies eventuell noch selbst erledigen. Dazu loggst du dich in deine Konsole ein und führst den folgenden Befehl aus:

Danach startest du den Apache mit folgendem Befehl neu:

 Die Datei .htaccess

Nun machen wir uns an die Erstellung der .htaccess. Diese wird für dieses Beispiel sehr einfach sein. Hier ist schon mal der Inhalt der .htaccess.

Kopiere den Code in eine leere Datei und speichere sie in dem Hauptverzeichnis Deiner (Test-) Website mit dem Dateinamen „.htaccess“. Bitte beachte, dass der Dateiname nur aus einem Punkt „.“ und dem Wort htaccess besteht! Vor dem Punkt steht nichts!

Nun zu dem Inhalt der Datei, und was beim Aufruf deiner Site geschieht:

RewriteEngine On  schaltet die mod_rewrite ein.
Mit RewriteBase /  legen wir das Basisverzeichnis fest.

Die beiden darauf folgenden Zeilen schließen vorhandene Dateien und Ordner von den Rewrite-Regeln aus. Bestehende Dateien werden also nicht umgeschrieben.

Jetzt kommen wir zu der für uns wichtigsten Zeile:

Hiermit legen wir fest, dass alle Aufrufe an die Datei index.php mit dem Parameter q  umgeschrieben werden!

Sollte also jemand folgenden Link aufrufen

würde dieser Aufruf intern umgeschrieben in
index.php?q=impressum

Bei längeren Adressen, wie z.B.

würde dabei folgendes herauskommen

Wie du siehst, erhältst du alles, was nach deiner eigentlichen Webadresse kommt, in der Variable $_GET['q']

Jetzt müssen wir in PHP mit dem Inhalt der Variablen arbeiten. Das ist nicht allzu schwer, und mit ein paar einfachen Zeilen Code ist es getan.

Das PHP-Script

Das Script selbst ist sehr einfach und sollte für jeden, der schon einmal mit PHP programmiert hat, verständlich sein.

Die Erklärung

Die Funktion displayContent()  baust du auf deiner Seite dort ein, wo der Inhalt des zu ladenden Moduls erscheinen soll (also im Inhaltsbereich deiner Website).

Die Funktion setzt voraus, dass deine Inhalte im Ordner modules  liegen, also zum Beispiel für den Aufruf http://www.example.com/impressum  müsste im Ordner modules die Datei impressum.php  bereitliegen. Ist dies der Fall, wird die entsprechende Datei per include()  eingebunden.

Für den Fall, dass die Datei nicht vorhanden ist, wird die error.php  im Verzeichnis modules eingebunden. [Diese musst du natürlich auch erstellen!] Man könnte an dieser Stelle in der Funktion statt include("modules/error.php"); auch ein echo "Diese Datei existiert nicht";  ausgeben.

Ich bevorzuge allerdings die Datei error.php , da ich so eine schön gestaltete Fehlerseite statt einer plumpen Textausgabe an den Besucher ausgeben kann.

Weitere Variablen übergeben

Natürlich ist eine URL nicht immer nur so einfach wie oben beschrieben.

Wenn nun also der Besucher folgende Adresse aufruft
http://www.example.com/contact/Chris/email ,
so könntest du mit der Funktion weiterarbeiten.

Hier sind dann in $ex[0]  das aufgerufene Modul contact, in $ex[1]  wäre der Inhalt Chris, und  $ex[2]  würde email enthalten.

Aber ich wollte es hier ja einfach halten… Daher sei nur kurz gesagt: Die Funktion kann man natürlich als Vorlage für eine Extra-Funktion nehmen die die übergebenen Inhalte für andere Scripte zur Verfügung stellt.

Nutzung der SEO-URLs in Kontaktformularen

Wer ein HTML-Formular <form>  nutzt, kann hier natürlich auch als   target  die suchmaschinenfreundlichen URLs nutzen! Also einfach die <form>  wie immer bauen, am besten mit der POST-Methode, und auf der dann aufgerufenen, bereits umgeschrieben Seite sind die Forminhalte vorhanden!

Beispiel

Ich hoffe, ich konnte jemanden mit diesem Posting helfen. Nimm es einfach als Grundlage, um etwas eigenes, besseres zu bauen 🙂

Ganz wichtig: Sichert das Script ab!

Nutzt dieses Script bitte nicht auf einem öffentlich verfügbaren System, da es absolut nicht sicher ist! Es soll Euch lediglich einen ersten Eindruck davon vermitteln, wie Ihr am einfachsten SEO-optimierte URLs mit PHP und .htaccess erstellen könnt.

Immer, wenn User-Eingaben möglich sind (wie in diesem Falle über die URL), müsst Ihr jegliche Inputs prüfen, escapen, sanitizen. Hier ist ein schöner Artikel zum Thema „Wie schreibe ich sicheren PHP Code„.

Viel Spaß!

Chris

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.