(Gastbeitrag von Zeta-Producer-Anwender Thomas Lilienthal)
Die nachstehenden Ausführungen zur Nutzung einer .htaccess-Datei entstammen der Arbeit mit unserer Vereinshomepage.
Was ist eine .htaccess-Datei?
Die .htaccess ist eine Steuerdatei, die auf Apache-/Linux-Servern Verwendung findet. Auf Windows-Servern mit Microsoft IIS heißt das Äquivalent „web.config“. Auf Windows-Servern mit Apache-Webserver heißt die Datei auch .htaccess.
Bei der .htaccess handelt es sich um eine einfache Textdatei mit Steuerbefehlen. Zum Erstellen kann man den Editor aus dem Windows Zubehör verwenden. Wichtig ist hier lediglich, dass für das Speichern der Befehl „Speichern unter“ verwendet wird, dann als Dateiname „.htaccess“ eingetragen und als Dateiytp „Alle Dateien“ ausgewählt wird. Als Codierung ist „ANSI“ zu wählen.
Wo speichere ich die .htaccess?
Die .htaccess ist kein Bestandteil von Zeta Producer und muss über ein externes FTP-Programm wie beispielsweise FileZilla auf den Webserver übertragen werden. Sie ist dort im Hauptverzeichnis („Root“ oder „/“), also dem Verzeichnis, in das Zeta Producer veröffentlicht und die index.html liegt, abzulegen.
Alternativ können Sie die .htaccess-Datei auch innerhalb von Zeta Producer als Datei verwalten und einen alternativen Speicherort („/“) angeben. Dann kümmert sich Zeta Producer automatisch ums Veröffentlichen.
Sicherheitshinweis
die .htaccess ist eine sehr mächtige Steuerdatei für den Apache-Server. Fehler in dieser Datei können schnell zu Funktionsverlust und Nichterreichbarkeit der Homepage führen. Es ist daher wichtig, vor jeder Änderung an der Datei eine Kopie zu sichern.
Funktionen
Die .htaccess wird im Zeilenmodus (ohne Zeilenziffern) geschrieben. Jeder Befehl kommt in eine neue Zeile. Soll eine Zeile nicht aktiv sein, wird mit # die Zeile auskommentiert. Zur besseren Lesbarkeit sind Leerzeilen möglich.
# dies ist ein Kommentar
Festlegen der Fehlerseite
Manchmal kommt es vor, dass Besucher einen älteren Google-Treffer oder einen gespeicherten Favoriten aufrufen, der nicht mehr vorhanden ist (Seite gelöscht oder umbenannt). Damit der Besucher sicher auf die Fehlerseite „Seite nicht gefunden“ geleitet wird, wird mit nachfolgendem Befehl die Fehlerseite angewiesen:
# Beginn Fehlerdokument ErrorDocument 404 /seite-nicht-gefunden.html # Ende Fehlerdokument
Festlegung der Codierung
Damit es keine Probleme mit Umlauten und Sonderzeichen gibt, ist eine Festlegung der Zeichenkodierung auf UTF-8 sinnvoll.
# Beginn UTF-8 AddCharset UTF-8 .html AddCharset UTF-8 .php # Ende UTF-8
Startseite
Normalerweise heißt die Startseite immer „index.html“ (oder „index.php“). Es wird auch dringend empfohlen, hier keinen anderen Namen zu verwenden, da anderenfalls die Seite nicht aufgerufen werden kann. Hierzu gibt es folgende Lösung, wenn doch einmal eine andere Seite Startseite sein soll:
# Beginn Startseite DirectoryIndex index.html # Ende Startseite
Wenn beispielsweise bei uns in Pirna die Hochwassermeldepegel überschritten werden, ändere ich den Eintrag auf
# Beginn Startseite DirectoryIndex hochwasser.html # Ende Startseite
und beim nächsten Aufruf der Seite wird die Hochwasserseite als Startseite geladen. Diese schnelle Notumschaltung ist dann völlig ohne Zeta Producer realisierbar, es wird nur ein FTP-Zugang und eine Online-Verbindung benötigt.
Der Eintrag „DirectoryIndex“ führt bei Verwendung des Widgets „zpwshariff“ dazu, dass keine Zähler angezeigt werden. Gleiches trifft bei Verwendung der originalen „Shariff“-Lösung von Heise zu.
Umleitung von non-www auf www
Gerade bei PHP-Anwendungen wie Gästebuch, Shop, Online-CMS oder geschützter Bereich ist es wichtig, dass der Aufruf je nach Konfiguration auf die Homepage mit www oder ohne www erfolgt. Zahlreiche SEO-Programme warnen auch vor dem Thema „duplicate content“, da unseren Seiten im Netz grundsätzlich sowohl „mit www“ als auch „ohne www“ erreichbar sind.
Google betrachtet „mit“ und „ohne“ als zwei unterschiedliche Seiten, die aber den gleichen Inhalt = Duplicate Content haben und straft diese Seiten ab. Welchen genauen Einfluss dieses „Abstrafen“ auf das Ranking hat, darüber hält Google sich aber bedeckt.
# Beginn Umleitung von non-www auf www RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.example\.org [NC] RewriteRule ^(.*)http://www.example.org/$1 [R=301,L] # Ende Umleitung www
Umgekehrt erfolgt die Umleitung so:
# Beginn Umleitung von www auf non-www RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.example\.org [NC] RewriteRule ^(.*)http://example.org/$1 (L,R=301] # Ende Umleitung non-www
Die Rewrite-Befehle sind wegen der Verwendung von Sonderzeichen häufige Fehlerquellen, die zu Nichterreichbarkeit der Seite führen können. Daher vorher die .htaccess sichern. Es darf immer nur eine der beiden Varianten verwendet werden.
Umleitung von http auf https
https setzt sich immer weiter durch, um sicherzustellen, das die Besucher auf die gesicherte Seite geführt werden, folgende Umleitung:
# Beginn Umleitung https RewriteEngine On RewriteCond %{SERVER_PORT} !=443 RewriteRule ^(.*)$ https://www.example.org/$1 [R=301,L] # Ende Umleitung auf https
Umleitung index.html wegen duplicate content
Wenn unsere Homepage aufgerufen wird in der Form www.example.org erfolgt ja tatsächlich der Aufruf der www.example.org/index.html. In SEO-Tools wird dies häufig als Duplicate Content mit und ohne „/“ kritisiert. Auch dies lässt sich mit einer Umleitung ändern:
# Beginn Umleitung index.html duplicate Content RewriteEngine on RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://www.example.org/ [R=301,L] # Ende Umleitung duplicate Content
Wer keine index.html, sondern eine index.php hat, verwendet folgendes:
# Beginn Umleitung index.php Duplicate Content RewriteEngine on RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://www.example.org/ [R=301,L] # Ende Umleitung Duplicate Content
Bitte beachtet auch, dass je nachdem, ob Ihr die Webseite mit oder ohne www. eingerichtet habt, dann in in weiteren Weiterleitungsregeln Eure Domaine auch entweder mit oder ohnne www. eingetragen werden muss. Herzlichen Dank an Nemessis für diesen Hinweis.
Umleitung einzelner Dateien
Manchmal kommt es vor, dass man Dateien umbenannt hat oder sich diese in einem neuen Ordner befinden. Wenn man dann den alten Seitenamen (beispielsweise über ein Google-Suchergebnis oder einen Link von einer externen Seite) aufruft, landet man hoffentlich zumindest auf der Fehlerseite.
Besser ist es jedoch, den Besucher direkt auf die umbenannte Seite weiterzuleiten. Wer nicht aktiv mit der .htaccess arbeitet, kann in Zeta Producer unter „Erweitert“ → „Erweiterte Einstellungen“ den URL-Rewrite (Auswahl kein, Apache, Microsoft IIS) aktivieren. Zeta Producer generiert dann eine eigene .htaccess bzw. web.config mit den entsprechenden Einstellungen. Nutzer, die wegen der bereits aufgezeigten Möglichkeiten lieber eine eigene .htaccess pflegen wollen, sollten hier „kein“ einstellen. Zur Weiterleitung in der .htaccess nutzen wir den Redirect-Befehl.
Dieser geht sowohl für neue Namen, php statt html (und umgekehrt) oder neue Verzeichnisse:
# Beginn Umleitung umbenannter Dateien Redirect permanent /alteseite.html http://example.org/neueseite.html Redirect permanent /altershop.html http://example.org/neuershop.php Redirect permanent /2016.html http://example.org/2016/uebersicht-2016.html # Ende Umleitung umbenannter Dateien
Wenn es hier mal mehr Dateien werden, erhöht eine Leerzeile die Lesbarkeit.
Umleitung auf eine andere Domain
Auch die Umleitung auf eine andere Domain ist möglich. Am komfortabelsten geht dies natürlich über das Control-Center beim Provider. Technisch ist aber auch eine Lösung über die .htaccess möglich:
# Beginn Umleitung auf eine andere Domain Redirect 301 /http://www.andere-domain.de # Ende Umleitung auf eine andere Domain
Aussperren eines Bots
Normalerweise können wir Suchmaschinen-Roboter (Bots) bereits über die Robots.txt, zu erreichen in Zeta Producer unter „Einstellungen“ → „Google“ aussperren. Details hierzu findet Ihr in meinem SEO-Blog-Beitrag.
Manche Robots halten sich aber nicht an die Anweisungen und brauchen eine stärkere Schranke. Da solche Robots ständig weiterentwickelt werden (auch aufgrund von Gegenmaßnahmen in der .htaccess), kann immer nur begrenzter Schutz erreicht werden.
Wem also im Aktivitätsprotokoll auffällt, dass irgendein Bot gar zu häufig zu Besuch ist, ruhig mal googlen in der Kombination „htaccess Botname“). Gerade hier beachtet bitte die Notwendigkeit einer Sicherungskopie der .htaccess vor einer Änderung.
Um beispielsweise den XX-Bot auszusperren, können Sie folgende Zeilen verwenden:
# Beginn Aussperrung MJ12 Bot RewriteCond %{HTTP_USER_AGENT} MJ12bot RewriteRule .* - [F] # Ende Aussperrung MJ12 Bot
Kennwortschutz mit .htaccess
Es ist theoretisch auch möglich, mittels einer .htaccess einen Kennwortschutz einzurichten, der über den Nutzen des Widgets „geschützter Bereich“ hinausgeht, indem individuelle Kennwörter und Anmeldenamen vergeben werden. Hierzu aber folgende Empfehlung: Nutzt das Control-Center Eures Providers. Hier habt Ihr die Möglichkeit, einzelne Verzeichnisse zu schützen und individuelle Benutzer und Kennwörter festzulegen. Im Control-Manager werden dann eine angepasste .htaccess speziell für dieses Verzeichnis und eine Kennwortliste erstellt. Bei manuellen Einträgen in die .htaccess besteht zu leicht die Gefahr, dass man sich selber aussperrt.
Schlusswort
Ich hoffe, dass dieser Blog bei den Usern von Zeta Producer einige Fragen rund um die .htaccess beantwortet hat. Bitte denkt an eine Sicherheitskopie vor jeder Arbeit an der Datei.
Das Forum ist natürlich für jedwede Fragen offen.
Über den Autor
Thomas Lilienthal ist Webmaster des Sportförderverein Feuerblume e. V. und erreichbar unter webmaster@hanabi-pirna.de.