.htaccess
Ein Versuch sich diesem Mysterium zu nähern
Fehlerhafte Eingaben in dieser Datei können ihre Webseiten für Besucher und/oder Suchmaschinen unzugänglich machen!
Anleitungen - Beispiele
selfHTML bietet auf dieser Seite eine ausführliche Erläuterung der erlaubten Anweisungen in einer .htaccess-Datei.
Bananajoe Webseite rund um Apache und Homepagerstellung mit htaccess-Beispielen
http://sw-guide.de/webdesign-und-entwicklung/htaccess-mod_rewrite-fuer-cms-und-blog/ Software Guide - Tipps, Anleitungen, Weblinks, News und Eigenentwicklungen zu Software
Mod Rewrite und URI Manipulation mit .htaccess und Apache Adressierung im Internet - IP-Subnetting Um Netzwerke bilden zu können, ist es erforderlich, einen Adressraum in einzelne Netzwerke einteilen zu können. Dieses Bilden von Unternetzen nennt man "Subnetting".
Generatoren
htaccess-Generator (www.fueralles.de) Wer sich nicht groß mit dieser wichtigen Datei beschäftigen möchte, kann hier eine einfache htacess-Datei nach Vorgabe generieren lassen. Achtung, Fehler in dieser Datei können zum Beispiel zur Folge haben, daß Suchmaschinen Seiten oder ganze Verzeichnisse nicht lesen, ja sogar für Surfer überhaupt nicht mehr zugänglich sind!
htaccess Generator (cooletips.de/htaccess/) Umfangreicher Generator.
all-inkl.com Eine htaccess mit Passwortschutz, Weiterleitung oder div. Kleinigkeiten generieren lassen
Htaccess Tools Use our online generators to create .htaccess files for hotlink protection, password protection, htpasswd files, htaccess authentication. - Recht brauchbar aussehende Generatoren
Beispiele
Hier einige Beispiele von .htaccess Dateien, die auf den Seiten des Webmasters verwendet werden. Die ganzen Anweisungen wurden auf verschiedenen Foren und Seiten gefunden und an die eigenen Bedürfnisse angepasst. Also, wie in den Seitenfußnoten beschrieben,
keine Gewähr - diese Beispiele sind einfache und unkomplizierte Lösungen, wenn man sich nicht allzu sehr mit den .htaccess Anweisungen beschäftigen will und dienen hauptsächlich dem Webmaster selbst! Hoster: Strato; Paket: PowerWeb Basic
Adressen und IP's sperren (Strategien gegen Bilderdiebe und böse Bot's)
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_REFERER} ^http://(www\.)?bildklauer\.de(/.*)?$ [OR]
RewriteCond %{HTTP_REFERER} ^http://(forum\.)?andererbildklauer\.com(/.*)?$ [OR]
RewriteCond %{REMOTE_HOST} ^000.000...*
RewriteRule ^.*$ X.html [L]
RewriteEngine on- muß nur einmal in der htaccess eingetragen werden, auch wenn verschiedene Regeln festgelegt werden. RewriteCond %{HTTP_REFERER} ^http://(www\.)?bildklauer\.de(/.*)?$ [OR] #Eine Domain, auf der unerlaubt und ohne Backlink Hotlinks auf einige meiner Bilder gesetzt wurden. RewriteCond %{REMOTE_HOST} ^000.000...* #Besucher oder ein Bot mit dem IP-Adressbereich 000.000.xxx.xx.xxx
Damit habe ich den Spider von sogou.com gesperrt, der pro Monat mehr als 1,5 Gigabyte(!) Traffic verursachte! Falls jemand ebenfalls Probleme mit diesem unverschämten Chinesen hat, der auf die robots.txt nicht reagiert: RewriteCond %{REMOTE_HOST} ^220.181...* oder %{REMOTE_HOST} ^220.181.0.0/16 In den Logfiles sind daraufhin die 404 er Fehler (Document Not Found) auf über 30.000 geklettert. :) Im Fall von sogou gibt es so viele Adressen, daß der Bereich als Ganzes gesperrt werden musste, was den Verdacht nahelegt, daß sogou.com mit CHINANET verbandelt ist. Da sogou.com also offensichtlich Teil des CHINANET Telecom-Unternehmens ist (so interpretiere ich das jedenfalls), sperre ich damit zwar wohl alle Chinesen, die mit CHINANET einen Vertrag haben, ebenfalls aus, aber sooo viele Chinesen werden sich wohl nicht auf meine Seiten verirren. Allerdings könnte es sich auch um eine Art Zensur handeln. Meine betroffene Seite beinhaltet auch einen Spiegel des ODP, auch chinesisch. Wenn Sogou soviel Traffic verursacht, werden die meisten betroffenen Webmaster CHINANET-sogou aussperren - vielleicht ist das ja beabsichtigt. Oder kennt jemand eine dezidiertere Methode, Sogou zu kappen? [OR] - weist Apache darauf hin, daß eine weitere RewriteCond-Regel folgt, die zutreffen kann. Alle Regeln (außer der Letzten), die IP's oder Adressen sperren, müssen in unserem Beispiel diese Anweisung haben. (Siehe die Tutorials für den Unterschied zwischen [OR]und [NC].) RewriteRule ^.*$ X.html [L] - leitet die Anfragen auf die nicht vorhandene X.html um. [L] bedeutet, daß keine weitere RewriteRule mehr folgt und die Schleife abgeschlossen ist.
Alternative: RewriteRule ^.*$ - [F,L] F steht für Forbidden. Die erste Lösung sah so aus:
SetEnvIfNoCase Referer "meine\.domain\.com" local_ref=1
<FilesMatch "\.(gif|jpg|png|swf|mpg|avi)$">
Order Allow,Deny
Allow from env=local_ref
Allow from images.google.
Allow from images.search.yahoo.
</FilesMatch>
Dies erlaubt nur den Zugriff auf Bilder von meiner eigenen Domain. Explizit images.google. und images.search.yahoo. dürfen ebenfalls Bilder anzeigen. Das Ganze ist aber nur teilweise überprüft und noch nicht ganz ausgearbeitet. Es gibt bessere Wege um den Bilderdiensten den Zugriff zu erlauben, glaube ich. Also eine Lösung in Reseve, sollte der Klau überhand nehmen.
Andere gefundene Lösungsvorschlage um Google zu erlauben (ungetestet):
RewriteEngine on
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite\.com [NC]
RewriteCond %{HTTP_REFERER} !^http://my\.ip\.123\.45 [NC]
RewriteCond %{HTTP_REFERER} !^http://.*google\.(com¦(co\.)?[a-z]{2})/(imgres¦search) [NC]
RewriteRule \.(jpg¦gif¦zip¦png)$ /myfile.jpg [NC,L]
oder
<Files ~ "\.(gif|jpe?g|png)$">
ErrorDocument 403 http://www.mysite.de/images/default.jpg
SetEnvIfNoCase Referer "^http://www.mysite.de" local_ref=1
SetEnvIfNoCase Referer "^http://mysite.de" local_ref=1
SetEnvIfNoCase User-Agent "^Mediapartners-Google" local_ref=1
SetEnvIfNoCase User-Agent "^Googlebot-Image" local_ref=1
Order Allow,Deny
Allow from env=local_ref
</Files>
Redirect
RedirectMatch permanent xyz.htm http://meine.domain.com/xyz.php
oder
RedirectMatch 301 xyz.htm http://meine.domain.com/xyz.php
Ein einfacher redirect (301) einer Datei, die umbenannt wurde. Wichtig auch, um Sumas davon in Kenntnis zu setzen! Solche Dinge in eine separate .htaccess legen, wenn Unterverzeichnisse betroffen sind. Die .htaccess in root sollte so knapp wie möglich gehalten werden, erst wenn ein Surfer tatsächlich die betroffene Datei aufruft, sollte die htaccess im entsprechenden Unterverzeichnis gelesen werden (Performance).
Redirect permanent /unterverzeichnis/ http://www.domain.tld/unterverzeichnis/
Leitet ein Unterverzeichnis auf eine (neue) Domain um. RedirectMatch 301 ^/pfad/(.*) http://domain.tld/unterverzeichnis/datei.php
Leitet alle Dateien von pfad/*.* auf die DATEI domain//unterverzeichnis/datei.php um.
RewriteCond %{HTTP_HOST} ^beispiel.com$ [NC]
RewriteRule ^(.*) http://www.beispiel.com/$1 [L,R=301]
oder, der umgekehrte Fall:
RewriteCond %{HTTP_HOST} ^www.beispiel.com$ [NC]
RewriteRule ^(.*) http://beispiel.com/$1 [L,R=301]
Alle Anfragen nach http://beispiel.com werden permanent auf http://www.beispiel.com umgeleitet oder umgekehrt. RewriteEngine on muß gesetzt sein. (R=301 Bedeutet den permanenten externen Redirect.) Sehr nützlich, um Suchmaschinen klar zu machen, daß es sich nicht um doppelten Inhalt handelt, da sie jetzt nur eine Domain erkennen (http://beispiel.com und http://www.beispiel.com sind für Sumas zwei verschiedene Domains mit gleichem Inhalt, was zu schlechterem Ranking führen kann). RewriteEngine on
RewriteRule ^(.*).html$ datei.php?section=$1 [L]
Bewirkt, daß die dynamische PHP-Datei 'datei.php?section=news17' im gleichen Verzeichnis wie die .htaccess als 'statische' Datei auch mit dem Namen 'news17.html' usw aufgerufen werden kann, falls Google die php?-Datei nicht indiziert. Alle Links können dann auf news17.html gesetzt werden und gauckeln den Sumas eine statische Datei vor.
RewriteEngine on
RewriteRule ^index.(php|html|htm)$ http://www.domain.tld/ [R=301,L]
Alle Anfragen nach der Indexdatei werden auf die Domain umgeleitet. Links zum Redirect
Inhaltsverzeichnis www.schmager.de Beschäftigt sich in drei sehr interessanten Artikeln mit redirect.
301 Weiterleitung "Wenn Webseiten umbenannt werden, oder eine Website auf eine andere Domain umzieht, kann man von den alten Dateien auf die neuen mit einem sogenannten permanent Redirect (301 Redirect) weiterleiten." (Zitat der Webseite)
Passwortschutz
AuthName "Test"
AuthUserFile /vollständiger Pfad zur Datei/.htusers
<Files phpinfo.php >
Require user Name
</Files>
Hiermit wird die Datei phpinfo.php auf diesen Seiten mit einem Passwortschutz versehen. .htusers enthält das verschlüsselte Passwort. Hat man den Apache installiert, kann man sich auf der Konsole mit htpasswd -h die Hilfe des Programmes htpasswd anzeigen lassen, das auf höchst einfache Weise ein verschlüsseltes Passwort samt der Datei .htusers generiert. Bsp: htpasswd -c /absoluter pfad/.htusers Name Es folgt die übliche zweimalige Passwortabfrage und die Datei wird erzeugt. Diese Art des Passwortschutzes ist anderen Methoden weit überlegen. Passwort geschützte Dateien scheinen manche Leute magisch anzuziehen, wie ich anhand der Logfiles festellen musste. Also, liebe Passwortknacker, nicht nach PHP oder gar Javascript suchen, das ganze ist Serverseitig. Aber - auch kein 100%iger Schutz, ein Restrisiko bleibt. :) Sonstiges
ErrorDocument 404 "<html><head><title>Die Seite ist nicht vorhanden</title>\
<style type='text/css'>\
body {background-color:#990000; text-align: center; color:#ffffff;}\
h1,p,a {font-family:Helvetica,Arial,Sans-serif;}\
h1 {font-size:1.7em; margin-bottom:0em;}\
p {font-size:0.95em;}\
a {font-size:1.2em; text-decoration:none; color:#8CE367;}\
a:link,a:visited {color:#000080;}\
a:hover {color:#FF0000;}\
</style>\
</head><body>\
<h1>Fehler 404</h1>\
<p>Die angeforderte URL kann leider nicht gefunden werden.</p>\
<p>Probieren Sie es bitte erneut mit einem Aufruf der\
<a href='/'>Startseite</a>.</p>\
</body></html>"
Einfache eigene Fehlerseite 404, in die .htaccess integriert. Options -Indexes #Verzeichnis-Browsing ist untersagt
Options +Indexes #Verzeichnis-Browsing ist erlaubt
AddDescription "____Vorschaubild__©__" .jpg #Wenn Verzeichnis-Browsing erlaubt, wird dieser Beschreibungstext bei Suffix jpg angezeigt
ReadmeName copyright.txt #Stellt beim Verzeichnisbrowsing den Inhalt von copyright.txt als Fußnote dar
IndexIgnore copyright.txt #Listet beim Verzeichnis-Browsing die angegebene Datei nicht auf
mod_gzip_on Yes #Schaltet die Datenkompimierung ein, funktioniert bei Strato nur, wenn man teurere Pakete hat
RewriteRule ^(.*)\.html$ $1.php
Alle Dateien mit der Suffix php sind auch mit der Suffix html aufrufbar. RewriteEngine on muß gesetzt sein. Darauf achten, daß kein doppelter Content entsteht. DirectoryIndex datei.php
Legt die Datei datei.php als Indexdatei des Verzeichnisses fest, in der sich die .htaccess befindet. Ohne Gewähr. Keinerlei Haftung für evt. Schäden durch Befolgen der Tipps oder empfohlener Programme!
Arbeiten sie bitte stets mit Sicherungskopien ihrer Dateien.
Beachten sie bitte, dass Webseiten den Inhalt wechseln und auch verkauft werden können. Sollte der Inhalt einer Webseite nicht ihren Erwartungen entsprechen, bitte ich um eine Nachricht.