Назад | Перейти на главную страницу

Правило перезаписи Nginx, эквивалентное версии Apache

Я использую скрипт 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. Было бы проще сказать, если бы вы разместили свой файл конфигурации.