rewrite rule failing with unicode urls on nginx with pcre 8.3
yoavaner
nginx-forum at nginx.us
Tue Mar 20 16:06:36 UTC 2012
First post on the list, so please be gentle :)
I asked this question on stackoverflow, but wasn't getting any love
there, and then realised I should go to the source!
I managed to get nginx (1.0.14) compiled with the latest PCRE (8.30),
changed the rewrite rule to use UTF8, but it still fails in some cases
with unicode characters.
My rewrite rule is
location / {
try_files $uri $uri/ /index.php;
rewrite "(*UTF8)^/imgthumb/(.*)$" /timthumb.php?$1 last;
}
This works fine with images without unicode, but fails when the filename
contains unicode characters.
so
`/imgthumb/src=/wp-content/uploads/8姉妹の古いマトリョーシカ.jpg&h=121&w=137&zc=1`
**fails**
but `/imgthumb/src=/wp-content/uploads/MOD0005.jpg&h=121&w=137&zc=1`
**works** fine.
On Apache using .htaccess rewrite rule, it works with both
`RewriteRule ^/imgthumb/(.*)$ /timthumb.php?$1 [L]`
I noticed that the problem seems to stem from the fact that the PHP
script gets only one parameter (src) into the `$_GET` array with nginx,
but with apache rewrite it's broken down to different parameters...
Is my nginx rewrite rule wrong? Is there a way to make this work?
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,224105,224105#msg-224105
More information about the nginx
mailing list