.htaccess – Server-Reaktionen kontrollieren

|

Eine .htaccess hat mittlerweile in der Webseitenerstellung ihren festen Platz gefunden und es gibt viele Gründe, warum es Sinn machen könnte, eine zu erstellen. In diesem Blog Beitrag möchte ich gerne auf ein paar dieser Gründe eingehen und erklären, wie bestimmte Aufgaben (der Zugriffsteuerung meiner Seite oder Umleitungen) via .htaccess erledigt werden können.

Als erstes Beispiel wollen wir eine Umleitung erzwingen. Wenn jemand unsere Subdomain aufruft, soll er direkt an eine Unterseite weitergeleitet werden:

RewriteEngine On
RewriteBase /
RewriteCond % umleitung.mittwald.de$ [NC]
RewriteRule ^$ /umleitung.html

Im Prinzip sagen wir hier lediglich, dass jeder, der umleitung.mittwald.de in den Browser eingibt, auf unserer neuen Seite umleitung.html landet.
Natürlich kann die .htaccess nicht nur Umleitungen erzeugen, wir können sogar unserer .htaccess sagen, dass Sie bestimmten IP-Adressen den Zugriff auf unsere Seite erlaubt oder diesen sperrt. Nehmen wir an, der Besucher mit der IP 80.20.50.20 soll unsere Seite nicht mehr besuchen, so könnten wir dies mit folgenden Zeilen erreichen:

order allow,deny
deny from 80.20.50.22
allow from all

Andersrum können wir auch nur einem speziellen Besucher den Zugriff gestatten, solange er dieselbe IP-Adresse beibehält:

order allow,deny
deny from all
allow from 189.143.49.115

Nun gehen wir einmal von dem Fall aus, dass unsere Seite ein Update bekommt und wir zunächst alle User auf eine Wartungsseite umleiten möchten. Ganz einfach geht das so:

RewriteEngine On
RewriteBase /
RewriteCond % !^/wartung.html$
RewriteRule ^(.*)$

Alle Anfragen landen demnach auf unserer Wartungsseite wartung.html, der Domain domain.com. So kann auf diese Weise auch eine Weiterleitung auf eine andere Domain erfolgen.

Um den Inhalt eines Verzeichnisses vor fremden Zugriffen zu schützen, werden zwei Dateien benötigt.
In die .htaccess Datei tragen wir folgendes ein:

AuthType Basic
AuthName "beschreibung"
AuthUserFile /home/www/pXXXXXX/html/verzeichnis/.htpasswd.mittwald
order deny,allow
allow from all
require valid-user

In der .htpasswd.mittwald steht die folgende Zeile, hier der Benutzer mittwald mit seinem verschlüsselten Passwort:

mittwald:2jmj7l5rSw0yVb/vlWAYkK/Ybwk=

Rufe ich nun das Verzeichnis über den Browser auf, werde ich nach Benutzernamen und Passwort gefragt. Zur Verschlüsselung des Passworts finden sich verschiedene Tools im Netz.

Da war’s erst mal zu den Grundlagen. Es gibt natürlich noch viele weitere tolle Funktionen, die über eine .htaccess gesteuert werden können – zum Beispiel, um eine zusätzliche User und Passwort Abfrage zu erstellen oder um den vorhandenen Arbeitsspeicher zu begrenzen. Weitere Infos dazu findet ihr in der offiziellen Dokumentation.

Demnächst zeigen wir euch dann in einem weiteren Beitrag, welche Funktionen TYPO3 bereits mitbringt. Solltet ihr Fragen haben, wendet euch gern an unseren Kundenservice. :)

Kommentare

Christoph am
Noch eine Alternative hierzu, wenn IP stimmt dann Zugriff ansonsten nur per Kennwortschutz möglich.

AuthType Basic
AuthName "Demo"
AuthUserFile /home/www/pXXXXXX/html/.htpasswd.mittwald
order deny,allow
Deny from all
require valid-user
Allow from XXX.XXX.XXX.XXX
Satisfy any
Jens am

An welcher Stelle in der .htaccess-Datei muss ich deny from 80.20.50.22 einfügen?

Simon Mayrhofer am
Hallo zusammen ich möchte gerne die Dateiendung meiner Webseiten entfernen, über htaccess, z.B. möchte ich dass anstelle von fooderingo.com/restaurants.php nur fooderingo.com/restaurants steht?

Wie bringe ich es zustande?
Kristina Kiebe am
Hallo Simon,

wir haben dein Anliegen für dich gelöst. Schau dazu am besten in deine .htaccess. Da siehst du dann die zwei Zeilen. ;-)

Viele Grüße
Kristina
Andreas Stolze am

Wir möchten gerne in der htaccess mehrere URLs umleiten mittels Redirect 301 /alte-seite.php http:// www...../neue-seite/ leider kommt da immer eine Fehlermeldung (500). Ist das nicht erlaubt an dieser Stelle?

Jan Meyer am
Hallo Andreas,

löse es hiermit:
RewriteEngine On
redirectPermanent /alte-seite.php "https:// www.xyz.de/neue-seite"

Gruß
Jan von Mittwald
Vivien Waitz am

Hallo zusammen,

aus Sicherheitsgründen ist dies leider nicht möglich.
Bei weiteren Fragen wendet euch am besten direkt an unseren Kundenservice unter +49 (0) 5772/293-100.

Viele Grüße, Vivien

Andreas am

ja mich auch

Alexander Weber am

Und mich ebenfalls

Martin Zimmermann am

Das würde mich auch interessieren.

Ivan Horvat am

Ist es bei Euch möglich, auch die PHP Version in der htaccess des jeweiligen CMS zu definieren, z.B. falls ich verschiedene CMS- oder Shopsysteme habe?