Hallo,
Problematisch wird es, wenn der Alben-Name Sonderzeichen wie z.B. '&' enthält. Auch wenn die Sonderzeichen in der aufgerufenen URL maskiert sind - z.B. 'photos/Album1%262' - , löst mod_rewrite diese Maskierung auf, so dass auf 'photos.pl?album=Album1&2' weitergeleitet wird, und das Perl-Script somit den Query-String falsch interpretiert.
Gibt es eine Möglichkeit, diese Demaskierung zu verhindern oder wieder rückgängig zu machen?
Das ist ein bekannter Bug von mod_rewrite, siehe http://php.net/urlencode, dort der Nutzerkommentar von:
sebastiaan at netomzet dot nl
05-Mar-2007 09:04
quote: "Apache's mod_rewrite and mod_proxy are unable to handle urlencoded URLs properly - http://issues.apache.org/bugzilla/show_bug.cgi?id=34602"
The most simple solution is to use urlencode twice!
echo urlencode(urlencode($var));
Apache's mod_rewrite will handle it like a normal string using urlencode once.
Dort wird als Workaround vorgeschlagen, doppelt zu encodieren, also bei Dir 'photos/Album1%25262'. Das wird dann durch mod_rewrite zu 'photos.pl?album=Album1%262'.
Auf der im Nutzerkommentar verlinkten apache.org/bugzilla-Seite finden sich auch zwei Patches für den Apache. Das bringt natürlich nur was, wenn man den Server selbst administriert oder den Admin zum Patchen überreden kann.
viele Grüße
Axel