Frage zu mod_rewrite

Alles, was den Apache betrifft, kann hier besprochen werden.

Frage zu mod_rewrite

Postby hoelschi » 15. November 2007 11:53

Hallo,

ich hoffe, dass ich mit meinem Anliegen hier richtig bin.
Für einen Online-Adventskalender sollen die einzelnen Kalenderblätter nur über die Startseite aufgerufen werden können. Auf dem Apache-Webserver ist das Modul aktiviert und man hat mir eine .htaccess geschrieben, die angeblich funktionieren soll. Die .htaccess habe ich in den Ordner für die Kalenderblätter gelegt, kann aber trotzdem noch die einzelnen Kalenderblätter über direkte Eingabe im Browser aufrufen. Wer kann mir sagen, was falsch gemacht wurde?

Vielen Dank im Voraus

hoelschi



# .htaccess: Nur Aufruf der Kalenderblätter von eigener Domain erlauben

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www\.)?meine-domain\.(de)(/.*)?$ [NC]

RewriteRule \.(html)$ - [F]
hoelschi
 
Posts: 5
Joined: 15. November 2007 11:49

Postby Wiedmann » 15. November 2007 13:02

Nur mal vorweg:
- Das dir der Referrer keine wirkliche Sicherheit bietet ist dir klar?
- Bei dem "Schutz" den du planst, nimmst du in Kauf, dass du User ausschliesst?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby hoelschi » 15. November 2007 13:09

Wiedmann wrote:Nur mal vorweg:
- Das dir der Referrer keine wirkliche Sicherheit bietet ist dir klar?
- Bei dem "Schutz" den du planst, nimmst du in Kauf, dass du User ausschliesst?


Das das Ganze keinen wirklichen Schutz darstellt, ist mir klar, aber warum schliesse ich User aus? Es sollen nur diejenigen ausgeschlossen werden, die die URL der Kalenderblätter direkt aufrufen wollen.
hoelschi
 
Posts: 5
Joined: 15. November 2007 11:49

Postby Wiedmann » 15. November 2007 13:55

Es sollen nur diejenigen ausgeschlossen werden, die die URL der Kalenderblätter direkt aufrufen wollen.

Was bedeutet, dass kein Referer übertragen wird.
--> du musst die erste RewriteCond weglassen.
(Der wird ja nur übertragen, wenn man von irgendwo herkommt)

aber warum schliesse ich User aus?

Weil ja nicht gesagt ist, dass ein Browser überhaupt einen Referer überträgt.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby hoelschi » 15. November 2007 14:11

Jetzt habe ich die erste RewriteCond weggelassen, kann aber trotzdem noch alle Kalenderblätter einzeln im Browser aufrufen.

Was mache ich falsch, oder bin ich zu..........
hoelschi
 
Posts: 5
Joined: 15. November 2007 11:49

Postby thorbytes » 16. November 2007 08:36

Wiedmann wrote:Weil ja nicht gesagt ist, dass ein Browser überhaupt einen Referer überträgt.

Was der Opera-Browser AFAIK überhaupt nicht macht!

Also von der Arbeit mit einem Referer würde ich generell abraten. Wenn Du ein wenig PHP beherrschst wäre es das vernünftigste, die Kalenderblätter in ein eigenes, geschütztes Verzeichnis zu legen und diese dann über eine PHP-Seite mit einer Template-Engine einzeln einzubinden.

Ich empfehle Dir hierfür TinyButStrong
thorbytes
 
Posts: 67
Joined: 16. December 2005 11:36

Postby hoelschi » 16. November 2007 10:06

thorbytes wrote:
Wiedmann wrote:Weil ja nicht gesagt ist, dass ein Browser überhaupt einen Referer überträgt.

Was der Opera-Browser AFAIK überhaupt nicht macht!

Also von der Arbeit mit einem Referer würde ich generell abraten. Wenn Du ein wenig PHP beherrschst wäre es das vernünftigste, die Kalenderblätter in ein eigenes, geschütztes Verzeichnis zu legen und diese dann über eine PHP-Seite mit einer Template-Engine einzeln einzubinden.

Ich empfehle Dir hierfür TinyButStrong


Dann werde ich mir wohl etwas anderes überlegen müssen. Ich habe es jetzt etwas umgeschrieben und es funktioniert auch im FireFox, aber nicht im IE7.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?meine-domain.de(/)?.*$ [NC]
RewriteRule .*\.(html)$ - [F,NC]

Und wenn es mit Opera überhaupt nicht funktioniert, kann ich das mit dem Referer wohl vergessen.

Danke für den Hinweis und den Tip.
hoelschi
 
Posts: 5
Joined: 15. November 2007 11:49


Return to Apache

Who is online

Users browsing this forum: No registered users and 23 guests