Eigene Einstellungen über eine .htaccess-Datei

Die folgenden Codezeilen müssen immer in der Datei namens .htaccess in Ihrem htdoc/-Verzeichnis hinzugefügt werden. Dateien für einen Passwortschutz müssen im entsprechenden Unterverzeichniss liegen.

Falls Sie noch keine entsprechende Datei haben, fügen Sie sie zunächst neu hinzu (Punkt am Anfang des Dateinamens nicht vergessen).

Die Möglichkeiten, über .htaccess die Webservereinstellungen zu überschreiben, haben wir aus Sicherheitsgründen stark eingeschränkt.

Einzig erlaubt sind:

  • Passwortschutz von Verzeichnissen mittels mod_auth
  • Rewrite- und Redirect-Regeln mittels mod_rewrite

Nicht erlaubte Einstellungen in der .htaccess führen zu Fehlermeldungen. Viele CMS-Systeme bringen schon .htaccess-Dateien mit, die wegen bei uns nicht erlaubter Einstellungen zu Fehlermeldungen führen. In den Logdateien können Sie sehen, welche das sind und diese ggf. entfernen oder mit einem vorangestellten Kommentarzeichen # deaktivieren. Oft funktionieren die CMS-Systeme auch ohnen diese Einstellungen.

Beachten Sie dabei folgendes:

  • Der Verzeichnisschutz greift für das Verzeichnis, in dem die .htaccess-Datei liegt, sowie für alle Unterverzeichnisse dieses Verzeichnisses.
  • Das <your-site-name> müssen Sie durch den Namen Ihres SCP-Hosts ersetzen. Diesen haben Sie durch das Fax mit den Zugangsdaten, das wir Ihnen geschickt haben, erhalten. Der Name des SCP-Hosts folgt üblicherweise dem Muster <Generischer Name>.web.belwue.de (siehe hierzu auch den Artikel "Generischer Name").
  • Das <your-Domain> müssen Sie durch den Namen Ihrer Domain ersetzen, zum Beispiel www.ihre-schule.de
  • Soll die Weiterleitung für die Domain sowohl mit als auch ohne www. gelten, ist die Schreibweise: (www.)?ihre-schule.de

Schritte zum Erstellen eines passwortgeschützten Verzeichnisses

  • Anlegen des zu sichernden Verzeichnisses.
  • Anlegen einer Datei mit Namen .htaccess in dem zu sichernden Verzeichnis.
  • Anlegen einer Datei mit Namen https-user im Verzeichnis website_upload (vgl. hierzu auch die Beschreibung der Verzeichnisstruktur auf dem Webserver). In der Datei stehen die Benutzer mit den Passwort-Hashes in der Darstellung user:passwordhash.
  • Erstellen eines Passwortes für den Nutzer.
  • Benutzername und generierten Passwort-Hash in die https-user-Datei eintragen.

Hinweise:

  • Die Einträge für die https-user-Datei werden üblicherweise mit dem Apache-Tool htpasswd erstellt. Sollten Sie nicht über dieses Tool verfügen, können Sie z. B. diesen Online-Generator dafür verwenden. Achten Sie dabei darauf, dass Sie als Verschlüsselungsmethode nicht "crypt" verwenden, denn das ist inzwischen völlig veraltet und daher zu unsicher.
  • Obwohl sie die Datei https-user im Verzeichnis website_upload abgelegt haben, heißt das Verzeichnis in der Pfadangabe für AuthUserFile einfach nur upload. Das rührt daher, dass der Web-Server die Beziehungen zwischen verschiedenen Verzeichnissen intern teilweise über sog. symbolische Links  herstellt.

Beispiel für eine .htaccess-Datei

Die .htaccess-Datei für den Zugriffsschutz eines Verzeichnisses könnte z. B. so aussehen:

AuthType Basic
AuthName "Restricted Resource"
AuthUserFile /var/www/HumanReadable/<your-site-name>/data/upload/https_users
SSL RequireSSL
Require valid-user

Umleitung auf https

Hierfür benötigen Sie zunächst ein offizielles und gültiges Zertifikat; siehe dazu: "Hinweise zur EU-Datenschutzverordnung"

Wenn das Zertifikat installiert ist und Sie erzwingen möchten, dass der Webauftritt nur noch über HTTPS aufgerufen werden kann, ergänzen Sie die .htaccess-Datei mit folgendem Inhalt:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Bei vielen CMS lässt sich der HTTPS-Aufruf schon durch Setzen entsprechender Variablen (z. B. $site_url o. ä.) dazu veranlassen, dann ist das Ablegen der .htaccess-Datei nicht nötig. Bei Moodle-Auftritten wird der HTTPS-Aufruf über einen entsprechenden Wert der Variable $CFG->wwwroot erzwungen.

Weiterleitung auf eine andere URL

Hiermit können Sie den Seitenaufrufer auf eine beliebige andere Seite weiterleiten. Dies ist zum Beispiel dann sinnvoll, wenn Sie eine neue Homepage mit einer neuen Domain haben. Ergänzen Sie die .htaccess-Datei mit folgendem Inhalt:

RewriteEngine On
RewriteCond %{HTTP_HOST} <your-Domain>
RewriteRule (.*) http://www.zieldomain.de/$1 [R=301,L]

Wobei www.zieldomain.de natürlich durch die URL, auf die weitergeleitet werden soll, zu ersetzen ist.

Weiterleitungen in einen Unterordner auf der Zielseite sind direkt möglich, zum Beispiel: www.zieldomain.de/unterordner/sicherheit

Weiterleitung auf www

Wenn Die Seite sowohl mit als auch ohne www. am Anfang aufgerufen werden kann, Sie aber wollen, dass das www. im Browser immer angezeigt wird:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^<your-Domain>\.de$
RewriteRule ^(.*)$ http://www.<your-Domain>.de/$1 [R=301,L]

Wobei <your-Domain> in diesem Fall nur der Teil der Domain ohne www. ist.

Der umgekehrte Fall funktioniert analog.

Weiterleitung in einen Unterordner

Hiermit können Sie den Seitenaufrufer auf einen bestimmten Unterordner weiterleiten. Dies ist zum Beispiel dann sinnvoll, wenn ein CMS-System in einem Unterordner installiert ist oder Sie eine alte Version zu Archivzwecken verfügbar machen wollen. Dafür bietet es sich an, eine zusätliche Subdomain einzurichten wie zum Beispiel archiv.ihre-schule.de. Kontaktieren Sie dazu den Support unter: webmaster@belwue.de

RewriteEngine on
RewriteCond %{HTTP_HOST} ^<your-Domain>$
RewriteCond %{REQUEST_URI} !^/unterordner/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /unterordner/$1

RewriteCond %{HTTP_HOST} ^<your-Domain>$
RewriteRule ^(/)?$ unterordner/index.php [L]

Anstatt auf index.php können Sie auch auf index.html oder andere Dateien verweisen.