Я использую скрипт PHPThumb для изменения размера изображения в небольшом слайдере / карусели в моем блоге www.muylinux.com. Я завершил миграцию с Cherokee (у нас были проблемы с этим веб-сервером) на Nginx, но, хотя почти все работает нормально, карусель не показывает эскиз, созданный PHPThumb, хотя на самом деле изображение находится в каталоге, на который оно ссылается.
Например, это одно из изображений, которое должно быть показано в данный момент:
www.muylinux.com/wp-content/themes/massivenews/scripts/phpThumb/phpThumb.php?src=/wp-content/uploads/2010/11/Unix.jpg&w=186&h=156&zc=T&q=95
И как видите, изображение есть:
www.muylinux.com/wp-content/uploads/2010/11/Unix.jpg
Но почему-то это не отображается на карусели главной страницы.
Я почти уверен, что это вопрос какого-то правила перезаписи, но я не вижу, как это решить.
Я видел, что RewriteRule в Apache должно быть
RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]
Я не уверен, что «перевод» правила nginx может сработать, но я думаю, что это сработает.
Может ли кто-нибудь попытаться дать мне эквивалентное правило перезаписи для Nginx? Я пробовал это:
rewrite ^/([^?]*)(?:\?(.*))? index.php?thumb=$1$2;
Я новичок в этом, и это не сработало.
Наконец-то был нет необходимости включать новое правило перезаписи для того, чтобы решить проблему.
Путь и изображение не были найдены, потому что каталог плагина не имел разрешений на выполнение.
Так что на случай, если кто-то столкнется с этой проблемой, просто войдите в свою установку WordPress,
cd blog_path/wp-content/themes/theme_name
И в моем случае внутри этой папки у меня был значокскрипты'подпапка, содержащая скрипты phpThumb. Итак, с этого пути
chmod 755 -R scripts/
И ... проблема решена.
Это немного странная ситуация, если я правильно понимаю, обычно вы не переписываете запрос к файлу PHP в index.php.
Лучший способ конвертировать RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]
в синтаксис конфигурации Nginx использовать try_files $uri $uri/ /index.php?thumb=$request_uri;
Вероятно, он вам понадобится в вашем местоположении PHP, учитывая, что запрос относится к сценарию PHP. Было бы проще сказать, если бы вы разместили свой файл конфигурации.