Schlagwortarchiv für: htaccess

301er Weiterleitung – wie macht man das?

Wer eine Homepage betreibt wird dieses ab und zu modifizieren und erweitern. Sehr oft verändert sich dadurch die URL Struktur. Oder aber es ändert sich sogar der Domainname. Dann gilt es ein wenig Suchmaschinenoptimierung zu betreiben und den Suchmaschinencrawlern per 301er Weiterleitung diverse Dinge mitzuteilen.

Jede HTTP-Anfrage wird vom Server mit einem HTTP-Statuscode beantwortet. Er gibt Informationen darüber, ob die Anfrage erfolgreich bearbeitet wurde oder teilt dem Client im Fehlerfall mit, wo bzw. wie er die gewünschten Informationen erhalten kann. Einer dieser Fälle ist der dauerhafte Umzug der Seite mit dem Statuscode 301.

Wenn Webseiten umbenannt werden oder eine Website auf eine andere Domain umzieht, kann man von den alten Dateien auf die neuen mit einem sogenannten permanent Redirect (301 Redirect) weiterleiten. Diese Art der Weiterleitung wird auch von der Suchmaschine Google empfohlen, im Gegensatz zu einer temporären Weiterleitung (302).

Eine 301 Weiterleitung kann man auf unterschiedliche Weise realisieren:

1. als Anweisung in der .htaccess
soll auf
weitergeleitet werden

in der .htaccess im Verzeichnis wird dazu folgendes eingetragen:
Redirect permanent /default.html

2. mit der Funktion header() in PHP
die Datei hat folgenden Inhalt
<!–?php header(“HTTP/1.1 301 Moved Permanently”); header(“Location: “); header(“Connection: close”); ?–>

3. mit Mod_rewrite in der .htaccess
wenn auf
umzieht und

auf
,
kann man mit folgender Regel in der .htaccess weiterleiten:

RewriteEngine On
RewriteRule ^(.*)\.html$ [R=301,L]

Man unterscheidet zwischen server-seitigen und client-seitigen Weiterleitungen.

Zu bevorzugen sind eindeutig die server-seitigen Weiterleitungen. Die client-seitigen Varianten sind immer nur eine Notlösung. Sie haben aber trotzdem ihre Berechtigung und werden auch verwendet, nämlich meist dann, wenn die Rechte, die man auf dem Server hat, keine server-seitige Weiterleitung zulassen oder diese technisch nicht möglich ist.

Varianten der client-seitigen Weiterleitung

Für die client-seitige Weiterleitung sind zwei Varianten der Umsetzung verbreitet: mit JavaScript oder mit Meta-Refresh-Tag. Beide können unter Umständen beim jeweiligen Anwender nicht funktionieren, z.B. wenn der Browser sie nicht unterstützt oder wenn Javascript aus Sicherheitsgründen auf dem Computer abgeschaltet ist. Das ist einer der Gründe, warum für Weiterleitungen gewöhnlich ein „normaler“ Link zu sehen ist mit einer Beschriftung wie etwa „Wenn Sie nicht automatisch weitergeleitet werden, dann klicken Sie bitte hier…“.

Man muss aber wissen, dass client-seitige Weiterleitungen ein hohes Sicherheitsrisiko darstellen und sogar dazu führen können, dass diese Seiten von Suchmaschinen aus dem Ranking ausgeschlossen werden. Sie geben nämlich keinen Status zurück, weder 301 noch 302, und das macht sie verdächtig. Durch so einen Ausschluss schützen Suchmaschinen sich davor, eine Angriffsfläche für Hacker und Spam-Software zu bieten. Diese nutzt nämlich den entsprechenden Index der Suchmaschine, um dort einen Aufruf einer anderen Seite hinein zu bringen. Dieser Trick ist aber nur bei client-seitigen Weiterleitungen möglich.

Bei client-seitigen Weiterleitungen kann eine Zeitverzögerung auftreten. Zunächst wird die ursprüngliche Seite angezeigt und erst nach einer gewissen Zeit die andere Seite, auf die die Weiterleitung verweist. Das kann, im Gegensatz zur server-seitigen Weiterleitung, wo man nichts davon sieht, auf den Anwender unangenehm oder sogar verdächtig wirken. Manche Anwender haben dann sogar den Verdacht, dass hier Viren oder ein Fremd-Eingreifen die Ursache sind.

 

 

Robots.txt – Anweisungen für Suchmaschinen

Mit der Datei robots.txt können Anweisungen an Suchmaschinen übermittelt werden, um diesen das Auslesen von Webverzeichnissen zu gestatten oder zu verbieten. Die Anweisungen gelten für das gesamte Webprojekt. Alternativ müsste jede HTML-Datei in den Metatags entsprechende Hinweise liefern, was jedoch nur für die jeweilige Datei und gegebenenfalls Verweise Gültigkeit hat. Die robots.txt muss im Wurzelverzeichnis der Domain abgelegt werden.

Textdatei mit Datensätzen

Als reine Textdatei kann die robots.txt mit jedem Editor erstellt und bearbeitet werden. Die Anweisungen für die Webcrawler der Suchmaschinen werden in Datensätzen definiert. Im ersten Teil eines Datensatzes erfolgt die Angabe, für welche Suchmaschine die Anweisung gilt. Die Crawler werden mit User-Agent angesprochen. Im zweiten Teil des Datensatzes kann dem angesprochenen Crawler ein Verbot ausgesprochen werden. Ein Verbot wird mit Disallow eingeleitet und gilt immer für das angegebene Verzeichnis und alle Unterverzeichnisse. Soll das Verbot für mehrere Suchmaschinen gelten, werden diese untereinander aufgeführt. Die robots.txt könnte also folgendermaßen aussehen:

User-agent: Suchmaschinen-Crawler a
User-agent: Suchmaschinen- Crawler b
Disallow: /template/
Disallow: /privat/

Jeder Einleitung folgt ein Doppelpunkt und ein Leerzeichen. Im obigen Beispiel wird den Crawlern der Suchmaschinen a und b ein Verbot für die Verzeichnisse /templates und /privat erteilt. Enthält die robots.txt mehrere Datensätze, werden diese durch eine Leerzeile voneinander getrennt. Sollen pauschal alle Robots angesprochen werden, geschieht dies mit dem Zeichen *:

User-agent: *
Disallow: /templates/
Disallow: /privat/

Alternativ zu ganzen Verzeichnissen kann auch für bestimmte Dateien in einem Verzeichnis ein Verbot erteilt werden. Zu diesem Zweck wird der Pfad inklusive der Datei angegeben. Sind alle Verzeichnisse der Domain betroffen, geschieht dies mit

User-agent: *
Disallow: /

Es wird also jeglichen Crawlern das Indizieren sämtlicher Verzeichnisse der Domain untersagt.

Sinn der robots.txt

Mit den Verboten, bestimmte Verzeichnisse auszulesen, soll in erster Linie erreicht werden, dass nur relevante Inhalte in den Suchmaschinen gelistet sind. Dies ist beispielsweise sinnvoll, wenn ein Verzeichnis ausschließlich Template-Dateien für den Internetauftritt enthält, die keinen informativen Wert haben. Auch wenn, wie in obigem Beispiel, der Inhalt des Verzeichnisses /privat nicht gelistet werden soll, kann das über die robots.txt gesteuert werden. Die Suchmaschinen werden somit nach Möglichkeit frei von irrelevanten oder unerwünschten Inhalten gehalten.

Zugriffe ausdrücklich erlauben

Für die Erlaubnis, Domaininhalte zu indizieren, gibt es keine Definition. Allerdings ist es möglich, einem bestimmten Crawler den Zugriff auf alle Verzeichnisse zu gestatten:

User-agent: Suchmaschinen-Crawler c
Disallow:

Die fehlende Angabe hinter Disallow gestattet dem Suchmaschinen-Crawler c die Indizierung aller Verzeichnisse und Unterverzeichnisse.

Grenzen der robots-txt

Seriöse Suchmaschinen halten sich an das “Robots-Exclusion-Standard-Protokoll”. Dieses regelt, dass die Crawler beim Auffinden einer Webseite zunächst die Datei robots.txt auslesen. Eine Garantie dafür gibt es allerdings nicht, auch können auf diese Weise keine Inhalte vor Zugriffen geschützt werden. Diesem Zweck dient beispielsweise der Verzeichnisschutz über die Datei .htaccess.

Wofür braucht man eine .htaccess Datei?

.htaccess ist eine Konfigurationsdatei, in der verzeichnisspezifische Einstellungen auf Webservern (z. B. Apache) vorgenommen werden können.

.htaccess-Dateien sind vor allem auf Apache-Servern zu finden, exakter ausgedrückt auf NCSA-Servern und solchen, die zu diesen kompatibel sind. Weil Apache-Server immer weitere Verbreitung finden, wird diese Art des Zugriffsschutzes auch immer populärer und verbreitet sich mit der Nutzung dieser Server. Andere Server-Familien nutzen aber oft eine ähnliche Technologie.

Beispielsweise lässt sich mit .htaccess-Dateien ein Zugriffsschutz durch HTTP-Authentifizierung für ein Verzeichnis oder einzelne Dateien einrichten. Aber auch Fehlerseiten oder interne Verknüpfungen lassen sich hierüber einstellen, ohne den Server neu starten zu müssen: Änderungen in der .htaccess Datei treten sofort in Kraft, da diese bei jeder Anfrage an den Webserver ausgewertet werden, woraus aber auch ein möglicher Performanceverlust resultiert.

In diesen Dateien vorgenommene Einstellungen wirken wie -Abschnitte in zentralen Konfigurationsdateien, welche den .htaccess-Dateien vorzuziehen sind. Ausnahme: Man hat keinen Zugriff auf die Konfiguration des Servers, oder dieser kann nicht ohne weiteres neu gestartet werden. Sie gelten nur für das Verzeichnis, in dem sie gespeichert sind, sowie in allen Unterverzeichnissen.

Generell benutzen .htaccess-Dateien dieselbe Syntax wie die Hauptkonfigurationsdateien. Um die darin enthaltenen Anweisungen wirksam zu machen, müssen die entsprechenden Festlegungen in den Hauptkonfigurationsdateien als überschreibbar (AllowOverride) gekennzeichnet werden, da diese sonst ignoriert werden.

.htaccess-Dateien sollten genutzt werden, wenn Konfigurationsänderungen per Verzeichnis gemacht werden sollen, aber kein Vollzugriff auf das Serversystem besteht oder der Systemadministrator den Nutzern das Ändern von bestimmten Konfigurationen gestatten will. Es kann auch genutzt werden, wenn mehrere Seiten auf einem System gehostet werden und deren Konfiguration individuell angepasst werden soll.

Grundsätzlich sollte der Gebrauch von .htaccess-Dateien vermieden werden, da die Konfigurationsmöglichkeiten auch in -Sektionen in der Hauptkonfiguration vorhanden sind.

Gebräuchliche Verwendung von .htaccess-Dateien:

Authorisierung
.htaccess-Dateien werden oftmals genutzt, um Sicherheitsbeschränkungen für bestimmte Verzeichnisse zu spezifizieren. Dann werden sie meist von .htpasswd-Dateien begleitet, die zulässige Nutzernamen sowie Passwörter beinhalten.

Umschreiben von URLs
Server nutzen oft .htaccess-Dateien, um lange und unverständliche Adressen in kürzere, einfache zu merkende Adressen umzuwandeln.
Gerade für den bereich Suchmaschinenoptimierung sehr, sehr wichtig wenn sich die Verzeichnisstruktur der Webseite ändert!!

Blocken
Kann genutzt werden, um Nutzer abhängig von ihrer IP, Domäne oder anderen Kriterien den Zugriff auf Inhalte des Verzeichnisses zu blockieren.

Serverseitige Includes
Einbinden von serverseitig gebrauchten Bibliotheken oder anderem.

Directory Listing
Steuern, wie der Server reagiert, wenn keine spezifische Webseite angegeben ist.

Individuelle Fehlermeldungen
Die Seite verändern, die angezeigt wird, wenn z.B. ein HTTP 404 (Seite nicht gefunden) Fehler auftritt.

MIME Typen
Den Server anweisen, wie verschiedene variierende Datentypen behandelt werden sollen.

Cache Kontrolle
.htaccess-Dateien erlauben die Kontrolle über das Cachen von bestimmen Seiten durch Browser oder Proxies, um Bandbreitennutzung und Serverauslastung zu reduzieren.

Übrigens hat sich der Dateiname .htaccess zwar allgemein eingebürgert, ist aber nicht grundsätzlich Pflicht. In der Konfigurationsdatei des Servers kann der Server-Administrator festlegen, dass ein anderer Name benutzt wird. Dass der Dateiname mit einem Punkt beginnt, ist ein Erbteil aus der Unix-Welt. Hier beginnen die Namen von Konfigurationsdateien oft mit einem Punkt. Das kann aber den Nachteil haben, dass sie als „unsichtbar“ behandelt werden, z.B. auf einem FTP-Server. Dann könnte der Eindruck entstehen, dass sie überhaupt nicht existieren.

Weitere Infos (externe Seiten):

[related-links]