我正在使用 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
但不知何故,它没有显示在主页的轮播上。
我很确定这是一个重写规则的问题,但我不知道如何解决这个问题。
我已经看到 Apache 中的 RewriteRule 应该是
RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]
我不确定“翻译” nginx 规则是否可行,但我猜测它很有可能可行。
有人可以尝试给我 Nginx 的等效重写规则吗?我试过了:
rewrite ^/([^?]*)(?:\?(.*))? index.php?thumb=$1$2;
我是这方面的初学者,但还没有成功。
答案1
如果我理解正确的话,这是一个有点奇怪的情况,通常你不会将对 PHP 文件的请求重写为 index.php。
转换RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]
为 Nginx 配置语法的最佳方法是使用try_files $uri $uri/ /index.php?thumb=$request_uri;
考虑到请求是针对 PHP 脚本的,您可能需要将其放在 PHP 位置。如果您发布了配置文件,可能会更容易理解。
答案2
终于无需包含新的重写规则以解决问题。
由于插件目录,找不到路径和图像没有执行权限。
因此,如果有人遇到此问题,只需访问您的 WordPress 安装,
cd blog_path/wp-content/themes/theme_name
在我的例子中,在那个文件夹中我有一个'脚本' 包含 phpThumb 脚本的子文件夹。因此从该路径,
chmod 755 -R scripts/
然后...问题解决了。