PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mod_rewrite in htaccess - Syntaxfrage



MannOhMann
19.03.10, 16:33
Hi Leuts,
da ich derzeit das massive Problem des Bilderhotlinkings habe, arbeite ich nun daran, dies zu unterbinden



RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com(/.*)?$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.*)?google(/.*)?$ [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule \.(gif|jpg|jpeg|png|GIF|JPG)$ http://www.domain.com/images/dieb.jpg [R,L]


Diesen Code habe ich am laufen und er blockt schon mal, nun habe ich aber das Problem, dass auch div. os&xtcommerce Shops am Server laufen, und diese folgende Bildlinks produzieren:

/product_thumb.php?img=images/product003443.jpg&w=187&h=150

duch den Code endet das Image nicht mehr auf .jpg und die RewriteRule greift nicht.
Rewrite 150$ ... greift aber leider auch nicht.

Kann mir da wer auf die Sprünge helfen?

derRichard
19.03.10, 17:23
hi!

dann bau doch noch einen regex a la "^/product_thumb.php.*" ein.

hth,
//richard

MannOhMann
19.03.10, 17:29
RewriteRule \.(gif|jpg|jpeg|png|GIF|JPG)$ http://www.domain.com/images/dieb.jpg [R,L]
RewriteRule ^/product_thumb.php.* http://www.domain.com/images/dieb.jpg [R,L]

2. Rule greift leider nicht...

derRichard
19.03.10, 17:54
du sollst dir regel ja nicht einfach blind abtippen, sondern verstehen und richtig umsetzen.
darum hab ich ja "a la" geschrieben...

//richard

MannOhMann
19.03.10, 18:02
gern, hilf mir beim verstehen ^^

ich habe auch ^ am Anfang weggelassen da das ja einen Anfang bedeuten würde, es aber mittendrin vorkommt - ging auch nicht.

derRichard
19.03.10, 18:14
kann man überhaupt nach RewriteCond mehrere regeln anwenden?
ich kenne das mod_rewrite-manual nicht auswendig...

//richard

MannOhMann
19.03.10, 18:51
ich habe es auch schon einzeln probiert 1. geht 2. (allein) auch nicht.
Würde die Syntax der 2. Rule passen ?

chris@online
23.03.10, 17:24
Nimm doch mal das $ aus der RewriteRule. Das müsste schon reichen.

MannOhMann
28.03.10, 17:53
müßte - da es ja das Ende darstellt - tut es nur leider nicht.

w-s-p
30.03.10, 15:54
Das [L] am Ende sagt, dass es die letzte Regel ist.
Danach wird alles ignoriert.
Das kannst du nur hinter der letzten Regel setzen.