У меня проблема, аналогичная , описанной в этом вопросе . Однако мне удалось получить nginx (1.0.14), скомпилированный с последней версией PCRE (8.30), изменил правило перезаписи на использование UTF8, но все равно не получилось.
Мое правило перезаписи:
location / {
try_files $uri $uri/ /index.php;
rewrite "(*UTF8)^/imgthumb/(.*)$" /timthumb.php?$1 last;
}
Это прекрасно работает с изображениями без Юникода, но не работает, если имя файла содержит символы Юникода.
так /imgthumb/src=/wp-content/uploads/8姉妹の古いマトリョーシカ.jpg&h=121&w=137&zc=1
не удается
но /imgthumb/src=/wp-content/uploads/MOD0005.jpg&h=121&w=137&zc=1
работает отлично.
На Apache, использующем правило перезаписи .htaccess, он работает с обоими
RewriteRule ^/imgthumb/(.*)$ /timthumb.php?$1 [L]
Правильно ли мое правило перезаписи nginx? Есть ли способ сделать эту работу?
UPDATE:
Я заметил, что проблема, похоже, связана с тем, что PHP-скрипт получает только один параметр (src) в массив $_GET
с помощью nginx, но при переписывании apache он разбивается на другие параметры ...