I'm having a similar problem to the one described on this question. However, 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.
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]
Is my nginx rewrite rule wrong? Is there a way to make this work?
UPDATE:
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...