[mod_rewrite] RewriteRule und ErrorDocument

diggity

Erfahrenes Mitglied
Hallo Leute!

Hab folgende rw-rule:

PHP:
RewriteRule ^newsletter/track/([a-z0-9]).jpg$ /sites/admin/newsletter_track.php?hash=$1

und eben auch dieses ErrorDocument in der selben .htaccess:
PHP:
ErrorDocument 404 /errorpages/404.php

Nun wird die RewriteRule nicht befolgt und stattdessen das ErrorDocument ausgegeben. Wenn ich das ErrorDocument rausnehme, funktioniert die RewriteRule.

Gibts da irgend eine Lösung?

€dit: meine komplette .htaccess sieht so aus:

Code:
RewriteEngine on

RewriteRule ^([_a-z]*)/$ index.php?cat=$1&sub=news
RewriteRule ^([_a-z]*)/([a-z]*)$ index.php?cat=$1&sub=$2
RewriteRule ^([_a-z]*)/([a-z]*)/([-0-9]*)$ index.php?cat=$1&sub=$2&monat=$3
RewriteRule ^([_a-z]*)/([a-z]*)/id/([0-9]+)$ index.php?cat=$1&sub=$2&show=$3
RewriteRule ^([_a-z]*)/([a-z]*)/([-0-9]*)/([0-9]+)$ index.php?cat=$1&sub=$2&monat=$3&id=$4

RewriteRule ^newsletter/track/([a-z0-9]).jpg$ /sites/admin/newsletter_track.php?hash=$1

Options -Indexes
ErrorDocument 404 /errorpages/404.php
php_flag register_globals off

Und nur die eine RewriteRule funktioniert nicht ... wie oben beschrieben.
 
Zuletzt bearbeitet:

Gumbo

Erfahrenes Mitglied
Welchen Test-URL setzt du denn ein? Sonst probier mal Folgendes:
Code:
RewriteRule	^newsletter/track/([a-z0-9]+)\.jpg$	/sites/admin/newsletter_track.php?hash=$1	[L]
 

diggity

Erfahrenes Mitglied
Gumbo hat gesagt.:
Welchen Test-URL setzt du denn ein? Sonst probier mal Folgendes:
Code:
RewriteRule	^newsletter/track/([a-z0-9]+)\.jpg$	/sites/admin/newsletter_track.php?hash=$1	[L]

Habs jetzt geändert so wie Du es beschrieben hast, leider keine Änderung.

Ich teste zB. mit sowas: newsletter/hash/sdsafdsdf.jpg
Später, wenn das mal funktioniert, werden md5-hashes übergeben.

Wie gesagt, wenn ich die Zeile mit dem ErrorDocument raus nehme, funktionierts.
 
Zuletzt bearbeitet:

Gumbo

Erfahrenes Mitglied
Ich hoffe, du weißt, dass sich das genannte Muster und der Test-URL nicht passen. Denn ein „newsletter/hash/sdsafdsdf.jpg“ passt einfach nicht in das Muster „^newsletter/track/([a-z0-9]+)\.jpg$“.
 

diggity

Erfahrenes Mitglied
Gumbo hat gesagt.:
Ich hoffe, du weißt, dass sich das genannte Muster und der Test-URL nicht passen. Denn ein „newsletter/hash/sdsafdsdf.jpg“ passt einfach nicht in das Muster „^newsletter/track/([a-z0-9]+)\.jpg$“.

Mhm ... *in die Ecke stell und schäm* ... hab ich mich wohl in der Eile vertan...
Aber in der ursprünglichen Form wie ichs gehabt hab, hats nicht funktioniert.

Code:
RewriteRule ^newsletter/track/([a-z0-9]).jpg$ /sites/admin/newsletter_track.php?hash=$1
So funktionierts nicht.

Sobald ich den + Quantifier hinzufüge, funktioniert es =)

Danke vielmals!
 

diggity

Erfahrenes Mitglied
Hab jetzt den Backslash auch noch eingefügt, inwiefern ist diese Regel jetzt "optimiert"?
 

Gumbo

Erfahrenes Mitglied
Ein Punkt hat in der Syntax regulären Ausdrücke eine besondere Bedeutung: es steht nämlich für nur ein beliebiges Zeichen. Diese aufzuheben, ist mit dem so genannten Flüchten möglich, wodurch es für einen Punkt steht.