Ich   Entwicklung   Lösungen Apache PHP mySQL  
 

Access-Dateien

Hinweis

Falls Sie auf diese Seite gekommen sind, ohne die Abschnitte Installation und Konfiguration gelesen zu haben: lesen Sie erst den Abschnitt Access-Dateien auf der Seite Main Server Configuration, um zu erfahren, welche Direktiven Sie mit Access-Dateien überschreiben dürfen.

Während die Einstellungen in der httpd.conf global gelten, wirkt sich die .htaccess nur auf ein Verzeichnis (nämlich das, in dem die Datei gespeichert ist) und seine Unterverzeichnisse aus.

Access-Dateien werden bei Providern voriegend zu zwei Zwecken genutzt: eigene Fehlerseiten und passwortgeschützte Bereiche. In 2004 kommt häufig hinzu, dass man per Access-Datei beeinflussen kann, welche Dateiendungen mit PHP 4, welche mit PHP 5 bedient werden. Aber auch auf die schon vorgestellte Options-Direktive gehe ich noch kurz ein:

1) Options

Ein kleiner Tipp: wenn Sie für ein Verzeichnis Options entfernen möchten, die in der httpd.conf grundlegend erlaubt sind, dann setzen Sie der jeweiligen Option ein Minuszeichen voran:

Options ExecCGI Multiviews -Indexes

Die in der httpd.conf erlaubten Verzeichnisinhalt-Anzeigen werden damit deaktiviert.

2) ErrorDocument

Auf dem folgenden Bild sehen Sie die Standard-"Seite nicht gefunden"-Fehlerseite des Apache 2:

Screenshot HTTP 404

Nicht gerade schmuckvoll. Sie können aber auch eigene Fehlerseiten entwerfen und diese anzeigen lassen. DIe Direktive dazu heißt ErrorDocument und ist sowohl global in der httpd.conf als auch in Access-Dateien möglich.

Hinweis

Falls eine Fehlerseite einmal nicht so angezeigt wird, wie Sie es sich vorgestellt haben, kann das am Browser liegen. Der Internet Explorer zeigt je nach Version selten die Fehlerseite an, die er anzeigen soll; meist zeigt er eine Standard-Seite an. Zum Testen benutzen Sie am besten einen anderen Browser!

Wie in der httpd.conf vorgeschlagen, empfehle ich ein Verzeichnis-Alias für Fehlerseiten. Auf diese Weise können Sie die selben Fehlerseiten für mehrere Domains nutzen. Erstellen Sie also ein Verzeichnis c:\docs\fehler\ und fügen in der httpd.conf einen Alias-Eintrag hinzu:

Alias /fehler/ "c:/docs/fehler/"

Jetzt können Sie einfach für verschiedene Fehler verschiedene Seiten angeben:

ErrorDocument 400 /fehler/badrequest.html
ErrorDocument 401 /fehler/authorisierung.html
ErrorDocument 403 /fehler/forbidden.html
...

Sinnvoll sind eigene Fehlerseiten vor allem, um auch den Fehlerseiten ein Corporate Design zu geben und, entsprechende Programmierkenntnisse vorausgesetzt, um Fehler behandeln zu können.

Lesen Sie dazu bitte meinen Artikel zur Erstellung von Fehlerseiten, wenn Sie eigene Webseiten für Ihren Internetauftritt realisieren möchten.

3) AddType

Mit AddType legen Sie fest, welche Dateiendungen welchen MIME-Type besitzen. Im Jahr 2004 führen die meisten Provider nach und nach PHP 5 ein. Da Version 4 noch als wesentlich zuverlässiger gilt, werden üblicherweise beide Versionen parallel betrieben.

Viele Provider haben in ihren Newslettern beschrieben, wie Sie das Problem lösen können. Da man als Kunde üblicherweise nicht die httpd.conf bearbeiten darf, bleibt einem nur die htaccess-Datei. Ein Beispiel:

AddType application/x-httpd-php .php4 .php3
AddType application/x-httpd-php5 .php .php5

Die Anweisungen sind selbsterklärend. Sie sollten allerdings nicht meinen, dies reichte, um PHP auf Ihrem Server zu aktivieren. Diese Einträge ordnen lediglich Dateiendungen bestimmten MIME-Typen zu. Der MIME-Typ application/x-httpd-php5 ist kein Standard-Typ, sondern wird von einigen Providern so angeboten, um zwischen PHP 4 und 5 unterscheiden zu können. Im PHP-Tutorial werden Sie lernen, wie Sie es schaffen, dass diese MIME-Typen auch tatsächlich bedient werden.

4) Passwort-Schutz

Mit der Hilfe von .htaccess-Dateien können Sie auch Verzeichnisse mit einem Passwort schützen. Dazu müssen Sie

  1. die Datei .htaccess entsprechend ändern
  2. Passwörter erzeugen und in einer Passwort-Datei speichern (heißt unter UNIX gewöhnlich .htpasswd)

1 Die Access-Datei ändern

Erschaffen Sie eine Access-Datei im DocumentRoot mit folgendem Inhalt:

AuthType Basic
AuthName "mein geschütztes Verzeichnis oder irgendein anderer beliebiger Name"
AuthUserFile  /docs/_.htpasswd
require valid-user
Achtung!

Vorsicht! Der Verzeichnispfad zur Passwortdatei geht nicht vom DocumentRoot aus, sondern vom Root der Festplatte! Dies ermöglicht, Passwortdateien sicherheitshalber außerhalb des DocumentRoot zu speichern.

Zusätzliche Hilfe

Auf Details gehe ich an dieser Stelle nicht weiter ein. Sehr ausführliche Informationen bietet die Dokumentation des Apache auf http://httpd.apache.org/docs-2.0/howto/auth.html.

2 Passwort-Datei erzeugen

Zum Erzeugen von Passwort-Dateien bringt der Apache die Datei htpasswd.exe mit, die Sie im /bin-Verzeichnis finden.

Starten Sie eine Konsole und legen eine neue Passwort-Datei für den User test mit dem Passwort test an:

Screenshot htpasswd.exe

Die Option -c erstellt eine neue Datei (und löscht eine alte, falls vorhanden). Wie Sie sehen, benutzt htpasswd automatisch den Verschlüsselungsalgorithmus MD5, allerdings ist dies nur unter Windows-Betriebssystemen so.

Wenn Sie sich die Passwort-Datei einmal mit einem Editor ansehen, werden Sie folgenden Eintrag vorfinden:

test:$apr1$Q7/.....$RlJSw6qOKq6MAz7Tlktdc.

Wenn Sie jetzt den DocumentRoot betreten, öffnet sich ein Fenster, das Sie zur eingabe Ihres Benutzernamens und Passwortes auffordert:

Screenshot Authorisation

Wenn Sie jeweils test eingegeben haben, dürfen Sie auf das Verzeichnis zugreifen.

Geschafft!

Gratulation! Sie haben das Apache-Tutorial beendet! Hoffentlich erfolgreich... teilen Sie es mir mit: jb@intermitto.net oder Kontaktformular

Als nächsten können Sie PHP und/oder mySQL installieren...

URL: www.intermitto.net/apache/konfig/htaccess/
© 2004-05 Jens Becker - intermitto.net v5.1
Letzte Änderung: 23.08.2005

Home - Kontaktformular - Downloads - Suche und Sitemap - Impressum
Entwicklung - Problemlösungen - Tutorials: Apache PHP mySQL

user  pass