Suchmaschinenoptimierung

transparent und partnerschaftlich

Jetzt anfragen!

.htaccess Datei

.htaccess – Was ist das für eine Datei?

.htaccess (Hypertext Access) Dateien sind Konfigurationsdateien im Textformat, welche Anweisungen an NCSA-kompatible Webserver (z.B. Apache) geben. Der Punkt „.“ gehört zum Dateinamen. Die für SEOs dabei interessantesten Einsatzgebiete sind hier sicher die 404er Fehlerseite oder Weiterleitungen (301er, 302er usw.). Die .htaccess vererbt ihre Anweisungen an Unterverzeichnisse und muss so bei üblichen Webseiten und Webprojekten nur einmal im obersten / haupt – Verzeichnis angelegt werden.

Tipp1: Nicht alle Hoster unterstützen die .htaccess. Gerade bei den günstigeren Hostern sollte man sich vorab unbedingt informieren, ob der Server die .htaccess unterstützt.

Tipp2: Wer die .htaccess für seinen WordPress Blog nutzen möchte, kann diese ganz einfach über das kostenlose Yoast SEO Plugin bearbeiten.

Tipp3: Die Datei kann mit einem normalen Texteditor erstellt werden.

Funktionen von .htaccess – Was kann ich alles damit machen?

Die .htaccess hat viele Einsatzmöglichkeiten – ich werde die für SEOs interessanten Funktionen hier etwas detaillierter vorstellen und die restlichen Funktionen nur kurz ansprechen. Am Ende des Beitrags sind Links von Quellen und weiteren Informationen zu finden, falls detailliertere Infos benötigt werden.

.htaccess für SEOs: Umleitungen – 301 und 302

Gerade bei Umstrukturierungen einer Webseite kommt es oft vor, dass URLs oder der komplette Aufbau geändert werden. Dann kommen die Umleitungen 301 und 302 zum Einsatz! Meines Erachtens der wichtigste Einsatzbereich für SEOs in der .htaccess Datei. Warum ist das für SEO so wichtig? Ganz einfach: Aufgebaute Links und ein gutes Ranking würden verloren gehen, wenn man die URL oder URL-Struktur einer Seite ändert. Mit einem Redirect sagen wir den Suchmaschinen, dass die alte URL nicht mehr verfügbar ist und die ganze Kraft der Backlinks und das Ranking auf die neue URL übergeben werden soll.

Unterschied 301 und 302:

  • Der redirect 301 sagt den Suchmaschinen, dass die gewünschte angeforderte Seite permanent einer neuen URL zugeordnet wurde. Das bedeutet, dass die „alte“ URL aus dem Index genommen und die Power auf die „neue“ URL gelenkt wird.

Ein Beispiel für den Einsatz des 301 redirects:

Ich analysiere meine eigenen Backlinks (oder die einer Expired Domain) mit einem Tool wie dem Link Juice Recovery Tool der LinkResearchTools. Dieses Tool zeigt mir meine „toten“ Backlinks, d.h. Backlinks, die auf meiner Seite z.B. einen 404er Error hervorrufen (mehr zu 404 weiter unten). Das Tool generiert mir dann automatisiert alle 301er redirects für diese toten Backlinks. Diese Weiterleitungen trage ich dann in meine .htaccess ein und „lenke“ somit die ganze Power der ehemals toten Backlinks auf meine Startseite. Beispiel:

Redirect 301 /olddirectory/oldfile.html  http://www.domain.at/
  • Der redirect 302 sagt der Suchmaschine, dass die angeforderte Seite nur temporär auf der neuen URL zu erreichen ist. Die „alte“ URL bleibt somit im Index und übergibt ihre Power nicht an die „Neue“. Es gibt kaum noch Anwendungen, bei denen der redirect 302 sinnvoll eingesetzt wird. Gerade bei langfristigen Änderungen in der Struktur einer Webseite sollte also z.B. der redirect 301 verwendet werden.

Weitere Infos dazu hier: http://www.bigoakinc.com/blog/when-to-use-a-301-vs-302-redirect/

Hier ein paar Anwendungsbeispiele von seo-snippets.de (ACHTUNG: für die folgenden Anwendungen von modrewrite, ist es wichtig, dass modrewrite installiert ist (Mehr Infos zur ModRewrite sind hier zu finden) und zu Beginn einer Befehlabfolge ein „RewriteEngine On“ steht (siehe wie folgt). Der Befehl „Rewrite Cond“ definiert Regeln/Konditionen für die die darauffolgenden Befehle gelten sollen.):

301 Weiterleitung einer Domain-URL von ohne auf mit www:

Beispiel (für Weiterleitung von domain.at auf www.domain.at):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.at$ [NC]
RewriteRule ^(.*) http://www.domain.at/$1 [L,R=301]

Das „L“ in [L,R=301] steht hier für „last rule“ und stoppt nach diesem Befehl den rewriting Prozess. Wird benutzt, um ein erneutes Überschreiben zu verhindern. Das „R“ steht für „force redirect“ und forciert den 301er redirect. Würde das „=301“ hier nicht stehen, so wäre es automatisch ein 302er redirect!!

301 Weiterleitung einer Domain-URL von mit auf ohne www:

Beispiel (für Weiterleitung von www.domain.at auf domain.at):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.at$ [NC]
RewriteRule ^(.*) http://domain.at/$1 [L,R=301]

301 Weiterleitung einer alten URL auf eine neue URL:

Beispiel (Weiterleitung von /relativer-pfad/alte-url.html auf http://www.domain.at/absoluter-pfad/neue-url.html):

Redirect 301 /relativer-pfad/alte-url.html http://www.domain.de/absoluter-pfad/neue-url.html

Alternative Schreibweise:

Redirect permanent /relativer-pfad/alte-url.html http://www.domain.de/absoluter-pfad/neue-url.html

301 Weiterleitung aller Dateien eines Verzeichnisses, auf eine andere Datei, bis auf eine Ausnahme

Beispiel (Weiterleitung aller Dateien des Verzeichnisses /produkte/ auf /produkte.php, ausser /produkte/aktionen.php):

RewriteEngine On
RewriteRule ^produkte/aktionen.php /aktionen.html [L,R=301]
RewriteRule ^produkte(.*)$ /produkte.php [L,R=301]

Weiterleitung einer dynamischen URL auf eine statische Seite

Weiterleitung von http://www.domain.at/article.jsp?id=8932 auf http://www.domain.at/neueste-nachrichten.htm

RewriteEngine On
RewriteRule ^article.jsp?id=(.*)$ /neueste-nachrichten.htm [L,R=301]

Interne Weiterleitung (Umschreiben einer dynamischen URL auf eine statische URL)

Ruft man die URL /schoener_name.html auf, wird intern /index.php ausgeführt und ausgegeben. Der Server gibt dabei den Statuscode “200″ (OK) aus und macht keine 301 oder 302 Weiterleitung. In der Adresszeile steht aber immer noch /schoener_name.html. Das Umschreiben ist somit nach außen hin nicht erkennbar.

RewriteRule ^schoener_name.html$ index.php [L]

.htaccess für SEOs: 404 Fehlerseite anzeigen

Der 404 Error erscheint beim Aufruf einer Webseite, welche nicht gefunden werden kann. D.h. die Seite wurde entweder gelöscht, verschoben oder hat nie existiert (z.B. wenn man sich vertippt hat). Hat man keine 404er Fehlerseite für seine Webseite eingerichtet, so bekommt der Besucher eine vom Webserver „nackte“ 404 Error Meldung, mit der man den Besucher höchstwahrscheinlich verliert (Usability-Horror). Auf der Suche nach „kaputten“ Backlinks kann eine 404er Fehlerseite von Vorteil sein. Tools erkennen Broken Links einfacher, wenn eine 404er Fehlerseite eingerichtet ist (siehe Beispiel LinkResearchTools oben).

Einen Fehler aus der Praxis, den wir immer wieder sehen: Man leitet von alten nicht mehr existierenden Seiten http://www.domain.at/gibtsnicht.html via redirect auf eine eigens angelegte 404 Fehlerseite. Dies sollte nicht gemacht werden, da diese Seite dann nicht als 404 identifiziert werden kann und diese 404 Seite durch die 301 Weiterleitungen extrem gestärkt im Google Index auftaucht. Ein Tool, mit dem man den Code einer Seite abfragen kann, gibts z.b. hier.

http Statuscode abfragen

Mit dem folgenden Befehl kann eine extra 404 Seite eingetragen werden. Sollte also eine Seite nicht mehr vorhanden sein, bekommt der Besucher automatisch diese eingetragene Seite angezeigt:

„Befehl 404 Pfad“ Beispiel:

errordocument 404 /www/error404.html

Beispiele für kreative 404 Error Pages (Tipp: eine 404er Fehlerseite sollte grundsätzlich so aufgebaut sein, dass sie den Kunden, der nicht vorgefunden hat, was er eigentlich erwartet hat, an der Hand nimmt und ihn auf eine sinnvolle Seite oder mögliche Alternativen hinweist).

http://www.hongkiat.com/blog/60-really-cool-and-creative-error-404-pages/

Weitere übliche Fehlercodes: 400, 401, 403, 500

Der Fehlercode 500 „Internal Server Error“ kann durch eine Fehlkonfiguration des Webservers, einen Schreibfehler in der htaccess-Datei oder bei nicht-funktionierenden CGI-Skripts vorkommen. Theoretisch gibt es noch viele andere Ursachen. 500 kommt immer bei unerwarteten Serverfehlern.

Der Fehlercode 403 erscheint, wenn man keine Zugriffsrechte auf die Seite hat.

Der Fehlercode 400 erscheint, wenn die Anfrage fehlerhaft aufgebaut war.

Möchte man für jeden Fehlercode eine eigene Seite erstellen, könnte das so aussehen:

ErrorDocument 400 /errors/badrequest.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html

Weitere .htaccess Einsatzmöglichkeiten

„Hot-Linking“ verbieten und damit die eigene Seite wieder schneller machen?

Folgendes Szenario: Ich habe viele große Bilddateien auf meiner Homepage – diese benötigen für meine eigenen Besucher jedoch nicht übermäßig viel Traffic/Serverresourcen. Baut nun jemand anders diese Bilddateien auf seiner Seite direkt über den Link auf seiner Seite ein, so wird dein Traffic und Server mehr ausgelastet. Dies könnte zu unerwünscht hohem Traffic führen – ohne dass man selbst davon was hat. Über die .htaccess ist es nun nicht nur möglich, das Hot-Linking zu verbieten, sondern dem „Dieb“ eine andere Datei anzeigen zu lassen (Je nach Lust und Laune können dies witzige Bilder sein, oder Bilder, die er lieber nicht auf seiner Seite hätte)

Hier ein Image Hotlinking Generator: http://www.htaccesstools.com/hotlink-protection/

.html Files als PhP-Dateien ausführen

Ein Eintrag in der .htaccess Datei ermöglich die Ausführung von php, auch wenn die Files .html heißen. Sehr praktisch, wenn man seine Seiten nicht umbenennen möchte – auch für Suchmaschinen.

RewriteEngine on
RewriteRule ^(.*).html$ $1.php

Passwortgeschützte Webseiten

Mit der .htaccess Datei lassen sich Webseiten mit einem Passwort versehen. Dies ist auch für verschiedene User oder Usergruppen möglich.

  • Hier ein Generator, mit dem man die verschlüsselten Passwörter für die notwendige .htpasswd Datei erzeugen kann.
  • Mit diesem Generator erzeugt man dann die notwendige Direktive für die .htaccess Datei

User oder Bots via IP oder Referrer blocken

Möchte man einzelne oder mehrere Users, Bots oder Angriffe blocken, so kann in der .htaccess der Zugriff auf die Seite von IPs oder anderen Seiten geblockt werden.

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*Whacker.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} Googlebot [OR]
RewriteCond %{HTTP_USER_AGENT} msnbot [OR]
RewriteCond %{HTTP_USER_AGENT} Slurp
RewriteRule ^.* - [F]

Quellen:

Sie wollen besser gefunden werden?

Jetzt kostenlos und unverbindlich anfragen!