Verwendung einer .htaccess-Datei als Ergänzung zu Zeta Producer [Apache-Webserver]

Verfasst am 18. März 2016

(Gastbeitrag von Zeta-Producer-Anwender Thomas Lilienthal)

.htaccess in Zeta Producer verwenden

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.