Moin!
order deny,allow
deny from all
allow from meinedomain.de
Kann nicht funktionieren, mit "allow" definierst du, welche IPs oder Hostnamen zugreifen dürfen - deine legalen und illegalen Besucher haben aber alle andere IPs und Hostnamen, mit denen sie online gehen, als "meinedomain.de". Mit dieser Konfiguration könnte nur ein Browser, der auf deinem Serverrechner läuft, zugreifen.
Vergiss diese Methode für dein Problem ganz schnell wieder, sie bringt dich nicht zum Ziel.
RewriteEngine on
#RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://meinedomain.de/.*$ [NC]
RewriteRule .*.(zip|rar|mpg|mp3)$ http://meinedomain.de/verboten.html [R,NC]
Wenn das nicht geht (habe gerade keine große Lust, das nachzustellen und auszuprobieren), dann steht der Grund dafür wahrscheinlich im Error-Logfile deines Servers. Alternativ kannst du auch ein separates Rewrite-Logfile anlegen lassen, in dem dann nur das Rewrite behandelt wird.
<Files ~ ".(gif|jpe?g|png|mp3|zip|rar|mpg|mpeg|avi)$">
ErrorDocument 403 http://web1.g402.greatweb.de/albumler/verboten.html
SetEnvIfNoCase Referer ^http://.* Verboten
SetEnvIfNoCase Request_URI .*verboten.html$ !Verboten
SetEnvIfNoCase Referer ^http://(.)*(.){0,1}web2.g402.greatweb.de.* !VerbotenOrder Allow,Deny
Deny from env=Verboten
Allow from all
Diese Methode setzt wie das Rewriting oben am Referrer an. Das ist eine freiwillige, eventuell gefälschte Angabe des besuchenden Browsers, auf welcher Seite er sich zuvor befunden hat. Logisch: Wenn der erste Abruf deiner Datei nichts bringt, weil der falsche Referrer gesendet wurde, wird ein nachfolgendes Wiederholen entweder den Referrer auf "Leer" setzen oder seine Domain mit hineinbringen - und die hast du ja erlaubt.
gibt es eine andere möglichkeit die dateien im ordner zu schützen außer htaccess
Natürlich gibt es diverse Möglichkeiten. Du könntest beispielsweise ein Cookie setzen und damit eine Session auf dem Server verknüpfen. Anhand der Session kannst du dann feststellen, ob der Besucher schon ein paar deiner eigenen Seiten angesehen hat, oder ob er direkt eine Datei abruft. Das bedeutet aber auch, dass alle deine Dateien durch ein prüfendes Skript geschleust werden müssen.
Alternativ kannst du natürlich auch die URLs der Dateien regelmäßig verändern. Das muß auf deiner Seite gar kein riesiger Aufwand werden, wenn du dafür ein passend programmiertes Skript einsetzt. Veränderliche URLs können nicht von anderswo her lange Zeit verlinkt werden. Es würde ja schon reichen, wenn die Dateien jeden Tag in einem anderen Unterverzeichnis (mit Tagesdatum) liegen würden. Du selbst mußt dann nur regelmäßig das Verzeichnis umbenennen und deine Links passend generieren - oder du läßt dir die meiste Arbeit von mod_rewrite abnehmen, ich denke, da gibt es mit Sicherheit Automatisierungsmöglichkeiten.
- Sven Rautenberg