Verwendung von htaccess
Hier findet ihr ein kleines Tutorail über htaccess. Was kann man nun alles mit htaccess machen? Man kann fast alles mit der htaccess machen was man auch in der httpd.conf festlegen kann. Nur bezieht sich das nich auf alle Accounts und Verzeichnisse, sondern nur auf ein speziell festgelegtes Verzeichnis.
Hier nun ein Überblick, was genau erläutert wird:
Passwortschutz
Eigene Fehlerseiten
Eigene Extensions (Dateierweiterungen)
Wie genau läuft der Verzeichnisschutz ab?
Die Datei ".htaccess":
AuthType Basic
AuthName "Mitglieder"
AuthUserFile /homepages/user/htdocs/offen/mitglieder/.htpasswd
require valid-user
Erläuterungen:
AuthName
Der Name, der auf dem Passwort-Eingabefenster angezeigt wird.
AuthUserFile
Der Pfad zur Password-Datei;
Der Pfad wäre in diesem Beispiel ein Verweis auf
http://www.code-box.de/mitglieder, wobei das Verzeichnis »Mitglieder« geschüzt wäre.
Die Datei ».htaccess« ist in jedem Falle im zu schützenden Verzeichnis (hier also /mitglieder/) abzulegen!
Beim anzugebenen Pfad handelt es sich um den Pfad zur Passwortdatei ».htpasswd« auf dem Server (in diesem Falle befindet sich die Datei ebenfalls im Verzeichnis /mitglieder/.
Der Serverpfad (DOCUMENT_ROOT, meist endend mit htdocs/ - oben in der Grafik bis zum roten Balken) ist spätestens beim Provider zu erfahren. Man kann dies aber auch mit PHP rausfinden. Inhalt dieser Datei muss sein:
require
Hier gibt es zwei Möglichkeiten, zum einen, alle auch in der Passwort-Datei enthaltenden Benutzer anzuführen, wie z. B.
require user1
require user2
Da dieser Weg an sich doppelte Arbeit macht, benutze ich oben angegebenes »require valid-users«, das bedeutet, dass die Benutzer anhand der Password-Datei .htpasswd identifiziert werden.
Die Datei ».htpasswd«:
user1:ahsFDEDw21/2.
user2:xcWEo1Jx6WTQo
kurt1:BSLFbcgsDEWdx
hans5:d2kekKHSe32Os
Erläúterungen:
Aufbau
Pro Zeile steht genau ein Username/Passwort - Paar, getrennt durch einen Doppelpunkt.
Passwort
Das eingzutragende Passwort muss "gecrypted" eingetragen werden und ist in jedem Falle 13 Zeichen lang. Beim Passwort im Klartext - welches der User eingibt - wertet der Server die ersten 8 Zeichen aus.
Crypt?
Einen Passwortcrypt kann man hier generieren.
Einrichtung eigener Fehlerseiten
Die Datei ».htaccess«
ErrorDocument 404 /error/404.html
ErrorDocument 401 /error/401.html
ErrorDocument 403 /error/403.html
ErrorDocument 300 /error/300.html
ErrorDocument 500 /error/500.html
Oft die oben genannte Möglichkeit nicht. Wenn dies der Fall ist sollte man die folgende Methode nutzen:
ErrorDocument 404 http://www.code-box.de/error/404.html
ErrorDocument 401 http://www.code-box.de/error/401.html
ErrorDocument 403 http://www.code-box.de/error/403.html
ErrorDocument 300 http://www.code-box.de/error/300.html
ErrorDocument 500 http://www.code-box.de/error/500.html
Erläuterungen:
Die oben angegebenen Zeilen (je nach Bedarf) in eventuell vorhandene .htaccess-Datei einfügen, oder eine neue .htaccess-Datei anlegen. Sie decken die wichtigsten Fehler ab. Natürlich kann man auch nur die Fehlerseite für 404 eintragen.
Im einzelnen:
404 - Seite konnte nicht gefunden werden
401 - Bei htpasswd-Schutz - Falsche user/pass-Kombination
403 - Falsche Zugriffsrechte für Dateien (Fehler teilweise gewollt!)
300 - Liste aehnlicher Dateinamen bei Eingabefehlern
500 - Fehler in Ausführung von (Perl/CGI/PHP) Scripten
Die Fehlerseiten können normale HTML-Seiten sein, auch Scripte und ähnliches sind möglich. Sie sind (bei obigem Beispiel) im Verzeichnis /error/ abzulegen, jeweils im root des Servers (bzw. in dem Verzeichnis, in welchem sich die .htaccess-Datei befindet - so können unterschiedliche Error-Seiten für verschiedene Verzeichnisse definiert werden).
Für den Fehler 404 (und auch andere) empfehle (und nutze) ich immer, die Index-Seite bzw. eine eventuell vorhandene Suchseite entsprechend anzupassen und als Fehlerausgabe zu verwenden.
Beispiel: Diese Seite ist existiert nicht!
Hinweis zu Suchmaschinen: Die Suchmaschinen erhalten natürlich die richtigen Fehlercodes und nicht die Fehlerseite!
Eigene Extensions
Extensions sind zum Beispiel .htm, .php, .zip usw. Wozu sind nun eigene Extensions gut? Die Hauptaufgabe ist, wie in großen Downloadzentren wie zum Beispiel zdnet.com, dass Dateienlocations verfälscht werden. Das heißt es wird vorgetäuscht, dass ein Programm, wir nennen es einfach programm.zip auf dem Webspace des Downloadzentren liegt. Weißt man nun PHP die Extension .zip oder auch .exe zu wird diese mit PHP geparst. Dies kann man zum Beispiel für Downloadcounter verwenden. Nur wenige Downloadmanager zeigen wirklich an auf welchen Server man wirklich gelinkt wird. Einige Programme, wie zum Beispiel Reget zeigen jedoch an auf welchem Server die Datei wirklich liegt.
Wie funktioniert das nun?
Man legt eine Datei namens .htaccess mit folgendem Inhalt an:
AddType application/x-httpd-php3 .zip .exe
oder
AddType application/x-httpd-php .zip .exe
Dies hat zur Folge, dass alle exe und zip Dateien mit dem PHP-Modul geparst werden.
Um nun einen Download ohne HTML zu erzwingen sendet man dem Browser per PHP Headerinformationen. Als Beispiel legen wir eine Datei namens programm.zip, mit folgendem Inhalt an:
<? header("Location: http://www.hersteller.de/produkt.zip"); ?>
Wenn man nun diese Datei per http aufruft müsste ein Download starten. Man kann auch Problemlos auf ftp-Adressen verlinken.
gefunden @ http://www.code-box.de





